FTP server
Q : Hur kan dina skapa egna skript som kan användas tillsammans med RaidenFTPD ?

A : Varför skulle man vilja skapa egna skript som kan arbeta tillsammsans med RaidenFTPD? 
Eftersom det nyligen introducerades möjligheten att bestämma VAD RaidenFTPD skall göra via ask://.
Man kan nu hindra användare från att logga in, hindra skapande av kataloger/filer
eller hindra någon från att ladda upp filer.

[DEL 1 : Fråga externa program om tillstånd att göra någonting]

01. Som första steg välj ditt favorit programmerings språk, i detta exempel används PHP.
02. Skriv ditt eget skript/program och gör det redo
03. Öppna din servers *.ftpd fil
04. Hitta raden OnNewDir= i [FTPD] sektionen.
*. notera att det endast är följande händelser spm stödjer ask:// är följande

- onUserLogin : utförs före login proceduren genomförs

- onFilePreUpload : utförs före användaren får tillåtelse att ladda upp en fil

- onNewDir : utförs före användaren skapar en katalog

- onFilePreDelete : utförs precis före användaren tar bort en fil

- onFileDeleted: utförs efter att användaren tagit bort en fil 
*
genom att använda ask:// här ger dig möjligheten att visa ett meddelande för användaren

- onDelDir : utförs före användaren tar bort en katalog

- onPreCwd : utförs före användaren byter katalog

- onFileUploaded : utförs efter att användaren laddat upp en fil
*
första raden i filen kommer att ignoreras

- onZipUploaded : utförs efter att en .zip fil laddats upp av användaren
*
första raden i filen kommer att ignoreras

05. i detta exemplet har vi installerat php filerna i katalogen c:\php-bin och skriptet heter askdir.php
06. i din *.ftpd fil hitta och ändra onNewDir=till onNewDir=ask://c:\php-bin\php.exe askdir.php %@ %G
07. notera att vårt skript askdir.php skall finnas i katalogen c:\php-bin
08. notera också att variabeln %@ (GCID) är ny från och med RaidenFTPD v2.1 build 983+
09. notera att du måste använde minst RaidenFTPD v2.2 build 299+ annars kommer inte ask:// att fungera
10. notera att variabeln %@ *MÅSTE* användas för alla ask/reply kommando
11. notera att variabeln %G ger den kompletta fysiska sökvägen, den är inget måste, vi använder den i vårt exempel
12. när skriptet är klart *MÅSTE* du skriva en output fil i katalogen c:\Program Files\RaidenFTPD\Output\ såhär ask-onNewDir.[GCID]
12. om GCID(%@)=a45848, händelse=onNewDir, måste outputfilen heta c:\Program Files\RaidenFTPD\Output\ask-onNewDir.a45848
* för andra händelser kan det se ut så här ask-onFilePreUpload.a45848 eller ask-onUserLogin.a45848 ...
13. output filen ser ut enligt följande riktlinjer
* första reden skall bara innehålla ett tecken, antingen 0 eller 1. 0 ger ett nekande svar till kommandot, 1 betyder ett jakandee svar till kommandot.
* från andra raden till slutet av filen kan du returnera ett meddelande till ftp användaren, kan vara flera rader
* varje rad bör inte överstiga 80 tecken
* du måste använda "\n" som ny rad tecken, använd inte "\r" eller "\n\r"
* ett exempel på ett lyckat svar kan du se i "sample/ok.txt" i exempelpaketet som du kan ladda ner lite längre ner på sidan
* ett exempel på ett misslyckat svar kan du se i "sample/fail.txt" i samma paket

14. servern kommer inte att rensa upp i output katalogen, det måste du göra själv

för att ladda ner fler exempel på ask/reply, klicka här

[DEL  2 : Externa program kan säga åt serven att utföra fler kommandon]

01. följ reglerna enligt del 1
02. i output filen som du skapade i del 1 är första raden ett jakande eller nekande svar på kommandot, från andra raden kan du hänvisa till andra kommandon...

för att utföra ett kommando med den inloggade användarens rättigheter skriver du in följande rad (inte på första raden) 

#command<ny rad>

till exempel: 

#site undupe filename-a<ny rad>

notera att <ny rad> är tecknet \n, det syns inte i en vanlig text editor.

notera: inga fler händelser kommer att triggas om du sänder några kommando på detta sätt, till exempel om du skickar #CWD /xxx kommer inte onPreCWD händelse att triggas.

om du vill utföra ett kommando med root rättigheter använder du följande format

#sudo kommando

till exempel:

#sudo site give john 1000

notera att du inte kan använda sudo för att ändra en användares nivå 

That's ALL

 

Copyright © RaidenFTPD TEAM , ALL RIGHTS RESERVED

REVISION 2.2 , 2002/06/06

translation done by MikHo (micke@jagegud.com)

FTP server WEB server Streaming server