D : Come fare interagire il vostro script con RaidenFTPD ?

R : Perché qualcuno dovrebbe creare uno script che possa interagire con RaidenFTPD ? Questo perché con la nuova interfaccia introdotta ask:// è possibile dire al RaidenFTPD "cosa fare" . Per esempio , impedire ad un utente di fare login , proibire la creazione di directory , proibire il caricamento di dati file .

[SEZIONE 1 : Chiedere ai programmi esterni il permesso di  fare qualcosa]

01. prima scegliete il vostro linguaggio di programmazione , in questo esempio useremo PHP
02. scrivete il vostro script/programma , e preparatelo
03. aprite il vostro file server *.ftpd
04. trovate la linea sotto [FTPD] , onNewDir=

*. nota : gli unici eventi che supportano l'interazione ask/reply sono :


- onUserLogin : eseguito prima che la procedura login utente sia permessa

- onFilePreUpload : eseguito prima che l'utente ottenga il permesso di caricare un file

- onNewDir : eseguito prima che l'utente crei una directory

- onFilePreDelete : eseguito prima che l'utente possa cancellare un file

- onFileDeleted: eseguito dopo che l'utente ha cancellato il file * usando ask:// qui si permetterà di mostrare messaggi al cliente FTP

- onDelDir : eseguito prima che l'utente possa cancellare una directory

- onPreCwd : eseguito prima dell'evento di cambio directory

- onFileUploaded : eseguito dopo il caricamento di un file , * la prima linea del vostro file di output è ignorata in questo evento

- onZipUploaded : eseguito copo il caricamento di un file zip , * la prima linea del vostro file di output è ignorata in questo evento

05. in questo esempio , il nostro percorso per la libreria php run time è c:\php-bin , e il nome dello script è
sitesome.php
06. modificate la linea , in modo che OnNewDir=ask://c:\php-bin\php.exe askdir.php %@ %G
07. notate che askdir.php deve essere nella directory in c:\php-bin
08. notate che la variabile %@ (GCID) è nuova , e appare solamente a partire da RaidenFTPD v2.1 build 983+
09. notate che occorre utilizzare la versione RaidenFTPD v2.2 build 299+ o questo ask:// non funzionerà
10. notate che %@ è *RICHIESTO* per chiunque voglia creare un'interfaccia ask/reply
11. notare che %G è la variabile dell'intero percorso fisico , e non è richiesta per tutti i comandi ,
la stiamo utilizzando qui come esempio
12. dopo aver fatto tutto quanto necessario , dovrete scrivere il file di output in
c:\Program Files\RaidenFTPD\Output\ask-onNewDir.[GCID]
12. esempio: GCID(%@)=a45848 , evento=onNewDir, dovrete scrivere il vostro file di output in
c:\Program Files\RaidenFTPD\Output\ask-onNewDir.a45848
* per altri eventi avrete ask-onFilePreUpload.a45848 oppure ask-onUserLogin.a45848 ...
13. il file di output deve seguire le linee guida seguenti
* la prima linea contiene solo un carattere : 0 o 1 , 0 significa comando non permesso , 1 significa comando permesso
* dalla seconda linea fino alla fine del file , il contenuto sono messaggi che volete mostrare all'utente FTP , che possono essere multi linea
* ciascuna linea di testo non deve passare gli 80 caratteri
* si deve usare "\n" come carattere di nuova linea , non usare "\r" or "\n\r"
* un esempio di file di output valido può essere trovato in "sample/ok.txt" all'interno di questo pacchetto
* un esempio di file di output non valido può essere trovato in "sample/fail.txt" all'interno di questo pacchetto

14. il server non ripulirà la directory Output directory per vostro conto , occorrerà provvedere a farlo.

per scaricare lo SDK per l'interfaccia addizionale ask/reply , fate click qui

[SEZIONE 2 : Programmi esterni che istruiscono il server a eseguire alcuni comandi]

01. questo deve essere usato con la procedura in sezione 1
02. nel file di output che avete fatto nella sezione 1 , la prima linea è sempre per il permesso/non permesso , a partire dalla seconda linea , è possibile cominciare a mettere i comandi...

per eseguire i comandi sotto il livello corrente (account corrente) , aggiungete questa linea nel file di output (non come prima linea)

#command<new line>

ad esempio

#site undupe filename-a<new line>

nota : <new line> è il carattere di nuova linea \n , non dovrebbe essere visibile in un normale editor testi

nota : nessun evento nidificato sarà attivato , così se viene inviato un #CWD /xxx ad un evento onPreCwd , lo onPreCwd non sarà attivato nuovamente

Se si vuole eseguire un comando al livello root , usare il formato seguente

#sudo command

ad esempio

#sudo site give john 1000

nota : non è possibile usare il comando sudo per cambiare il livello utente

Questo è tutto

Copyright © RaidenFTPD TEAM , ALL RIGHTS RESERVED

REVISION 2.4, 2024-03-28

FTP server | Streaming server | WEB server