FTPD(8)

NOME
ftpd - Server Internet File Transfer Protocol

SINTASSI
ftpd [-dlADq] [-T maxtimeout] [-t timeout] [-a login-name]

DESCRIZIONE
Ftpd è il processo del server Internet File Transfer Protocol. Il server usa il protocollo TCP e ascolta la porta specificata nelle specifiche del servizio “ftp”; vedere services(5).

Opzioni disponibili:

-d  L'informazione di debug è scritta su syslog usando LOG_FTP.

-l  Ciascune sezione ftp(1) che abbia successo o fallisca è oggata usando syslog con un servizio di LOG_FTP. Se questa opzione è specificata due volte, anche le operazioni di, recupero (get), archiviazione (put), aggiunta, cancellazione, creazione di directory, rimozione di directory e rinominazione e i loro argomenti nomi di file sono loggate.

-A  E' permesso solo l'autenticazione anonima.

-D  ftpd entra nel modo demone. Ciò permette a ftpd di funzionare senza inetd.

-q  Modo silenzioso. Al client non viene fornita alcuna informazione sulla versione di ftpd.

-T  Un client può anche richiedere un differente periodo di timeout; il massimo periodo permesso può essere impostato in timeout secondi con l'opzione -T. Il limite di default è di 2 ore.

-t  Il periodo di inattività di timeout è impostato in timeout secondi (il default è di 15 minuti).

-a  Dà anonymous e altri login-name (anonymous e ftpd funzioneranno ancora).

Il file /etc/nologin può essere usato per disabilitare l'accesso ftp. Se il file esiste, ftpd lo visualizza ed esce. Se il file /etc/ftpwelcome esiste, ftpd lo stampa prima di emettere il messaggio “ready”. Se il file /etc/motd esiste, ftpd lo stampa dopo un login avvenuto con successo.

Il server ftp attualmente supporta le seguenti richieste ftp. Il caso delle richieste è ignorato.
Request | Description
ABOR | abort previous command
ACCT | specify account (ignored)
ALLO | allocate storage (vacuously)
APPE | append to a file
CDUP | change to parent of current working directory
CWD | change working directory
DELE | delete a file
HELP | give help information
LIST | give list files in a directory (“ls -lgA”)
MKD | make a directory
MDTM | show last modification time of file
MODE | specify data transfer mode
NLST | give name list of files in directory
NOOP | do nothing
PASS | specify password
PASV | prepare for server-to-server transfer
PORT | specify data connection port
PWD | print the current working directory
QUIT | terminate session
REST | restart incomplete transfer
RETR | retrieve a file
RMD | remove a directory
RNFR | specify rename-from file name
RNTO | specify rename-to file name
SITE | non-standard commands (see next section)
SIZE | return size of file
STAT | return status of server
STOR | store a file
STOU | store a file with a unique name
STRU | specify data transfer structure
SYST | show operating system type of server system
TYPE | specify data transfer type
USER | specify user name
XCUP | change to parent of current working directory (deprecated)
XCWD | change working directory (deprecated)
XMKD | make a directory (deprecated)
XPWD | print the current working directory (deprecated)
XRMD | remove a directory (deprecated)

I seguenti comandi non standard o specifici di UNIX sono supportati dalla richiesta SITE.

Request | Description
UMASK | cambia la umask, e.g. ``SITE UMASK 002''
IDLE | imposta il tempo di inattività, e.g. ``SITE IDLE 60''
CHMOD | cambia i permessi di un file, e.g. ``SITE CHMOD 755 filename''
HELP | fornisce informazioni di aiuto.

Le richieste ftp rimanenti specificate in Internet RFC 959 sono riconosciute, ma non implementate. MDTM e SIZE non sono specificate in RFC 959, ma appariranno nella prossima RFC FTP aggiornata.

Il server ftp abortirà un trasferimento di file attivo solo quando il comando ABOR è preceduto da un segnale Telnet "Interrupt Process" (IP) e un segnale Telnet "Synch" nel flusso di comando Telnet, come descritto nella Internet RFC 959. Se un comando STAT è ricevuto durante un trasferimento dati, preceduto da un IP e Synch Telnet, verrà restituito lo stato del trasferimento.

Ftpd interpreta i nomi di file in accordo alle convenzioni “globbing” usate da csh(1). Questo permette agli utenti di utilizzare i metacaratteri “*?[]{}~”.

Ftpd autentica gli utenti conformemente a tre regole.

1.  Il nome di login deve essere nel data base delle password, /etc/passwd, e non avere password nulla. In questo caso una password deve essere fornita dal client prima che qualunque operazione sul file venga eseguita.

2.  Il nome di login non deve apparire nel file /etc/ftpusers.

3.  L'utente deve avere una shell standard restituita da getusershell(3).

4.  Se il nome utente è “anonymous” o “ftp”, un account ftp anonimo deve essere presente nel file password (utente “ftp”). In questo caso l'utente può accedere specificando qualunque password (per convenzione come password deve essere utilizzato un indirizzo email dall'utente).

Nell'ultimo caso, ftpd prende misure speciali per restringere i privilegi di accesso del client. Il server esegue un chroot(2) sulla directory home dell'utente “ftp”. Perché la sicurezza del sistema non venga compromessa, si raccomanda che il sottoalbero “ftp” sia costruito con attenzione, seguendo queste regole:

~ftp
    Dà la proprietà della home directory a “root” e la rende non scrivibile da nessuno.

~ftp/bin
    Dà la proprietà di questa directory a “root” e la rende non scrivibile da nessuno (modo 555). Il programma ls(1) deve essere presente per supportare l'elenco di comandi. Questo programma può avere i permessi 111.

~ftp/etc
    Dà la proprietà di questa directory a “root” e la rende non scrivibile da nessuno (modo 555). I file passwd(5) e group(5) devono essere presenti perché il comando ls possa produrre nomi di utente invece di numeri. Il campo password in passwd non è usato, e non deve contenere password reali. Il file motd, se presente, verrà stampato in seguito a un'autenticazione riuscita. Questi file devono avere permessi 444.

~ftp/pub
    Dà a questa directory i premessi 777 e proprietà di “ftp”. Gli ospiti quindi possono mettere file che siano accessibili attraverso un account anonimo in questa directory.

FILE
/etc/ftpusers
    Elenco degli utenti non benvenuti/limitati.
/etc/ftpwelcome
    Annuncio di benvenuto.
/etc/motd
    Annuncio di benvenuto dopo l'autenticazione.
/etc/nologin
    Visualizzazione e accesso rifiutati.

VEDERE ANCHE
ftp(1), getusershell(3), syslogd(8)

BUG
Il server deve funzionare come super-utente per creare socket con numeri di porta privilegiati. Esso mantiene un id utente effettivo dell'utente autenticato, tornando al super-utente solo quando lega gli indirizzi ai socket. I possibili buchi di sicurezza sono stati estesamente verificati, ma potrebbero essere incompleti.

STORIA
Il comando ftpd è apparso nella 4.2BSD.