SINTASSI
ftpd [-dlA``'' ] [-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, lo visualizza ed esce. Se il file /etc/ftpwelcome esiste, lo stampa prima di emettere il messaggio ``ready .'' Se il file /etc/motd esiste, lo stampa dopo un login avvenuto con successo.
Il server ftp attualmente supporta le seguenti richieste ftp. Il caso delle richieste è ignorato.
- Request Ta Description
- ABOR Ta abort previous command
- ACCT Ta specify account (ignored)
- ALLO Ta allocate storage (vacuously)
- APPE Ta append to a file
- CDUP Ta change to parent of current working directory
- CWD Ta change working directory
- DELE Ta delete a file
- HELP Ta give help information
- LIST Ta give list files in a directory (``ls -lgA '' )
- MKD Ta make a directory
- MDTM Ta show last modification time of file
- MODE Ta specify data transfer mode
- NLST Ta give name list of files in directory
- NOOP Ta do nothing
- PASS Ta specify password
- PASV Ta prepare for server-to-server transfer
- PORT Ta specify data connection port
- PWD Ta print the current working directory
- QUIT Ta terminate session
- REST Ta restart incomplete transfer
- RETR Ta retrieve a file
- RMD Ta remove a directory
- RNFR Ta specify rename-from file name
- RNTO Ta specify rename-to file name
- SITE Ta non-standard commands (see next section)
- SIZE Ta return size of file
- STAT Ta return status of server
- STOR Ta store a file
- STOU Ta store a file with a unique name
- STRU Ta specify data transfer structure
- SYST Ta show operating system type of server system
- TYPE Ta specify data transfer type
- USER Ta specify user name
- XCUP Ta change to parent of current working directory (deprecated)
- XCWD Ta change working directory (deprecated)
- XMKD Ta make a directory (deprecated)
- XPWD Ta print the current working directory (deprecated)
- XRMD Ta remove a directory (deprecated)
I seguenti comandi non standard o specifici di UNIX sono supportati dalla richiesta SITE.
- Request Ta Description
- UMASK Ta cambia la umask, e.g. ``SITE UMASK 002''
- IDLE Ta imposta il tempo di inattività, e.g. ``SITE IDLE 60''
- CHMOD Ta cambia i permessi di un file, e.g. ``SITE CHMOD 755 filename''
- HELP Ta 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.
- 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.
- Il nome di login non deve apparire nel file /etc/ftpusers .
- L'utente deve avere una shell standard restituita da getusershell(3).
- 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.
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 è apparso nella BSD 4.2 .