-------------
|/---------\|
|| User || --------
||Interface|<--->| User |
|\----^----/| --------
---------- | | |
|/------\| FTP Commands |/----V----\|
||Server|<---------------->| User ||
|| PI || FTP Replies || PI ||
|\--^---/| |\----^----/|
| | | | | |
-------- |/--V---\| Data |/----V----\| --------
| File |<--->|Server|<---------------->| User |<--->| File |
|System| || DTP || Connection || DTP || |System|
-------- |\------/| |\---------/| --------
---------- -------------
Server-FTP USER-FTP
Control ------------ Control
---------->| User-FTP |<-----------
| | User-PI | |
| | "C" | |
V ------------ V
-------------- --------------
| Server-FTP | Data Connection | Server-FTP |
| "A" |<---------------------->| "B" |
-------------- Port (A) Port (B) --------------
Po navázání spojení je potřeba zadat jméno a heslo. To se dělá pomocí
příkazů USER a PASS. Jedná-li se o volně přístupný server, používá se
jako jméno uživatele "anonymsous" nebo "ftp" a jako heslo se zadává
emailová adresa. Tokavý server pak většinou umožňuje procházet pouze
veřejnou část svého adresářového podstromu a z důvodu bezpečnosti na
sebe zavolá chroot.
/etc/inetd.conf //add ftp stream tcp nowait root /usr/sbin/proftpd in.proftpd //end /etc/proftp.conf //add to end of file #Jail the user to the home directory except the admin group DefaultRoot ~ !admin //end Nastavit práva adresářů na 755 //@ the command line type cd /home/ftp mkdir incoming chmod 777 incoming chown ftp:ftp incoming //end /etc/proftpd.conf *underwhere "X" is the allow attribute Allow Attributes: MKD make directories RMD remove directories STOR Transfer of files when dealing in multiple attribes X will be the item with spaces. //add <Directory incoming> Umask 017 <Limit X*> AllowAll </Limit> </Directory> //end /etc/proftpd.conf //add <Anonymous /home/ftp> RequireValidShell off User ftp Group ftp UserAlias anonymous ftp MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> <Directory incoming> Umask 017 <Limit STOR> AllowAll </Limit> </Directory> </Anonymous> //end
USERPASS ACCT CWD CDUP SMNT QUIT REIN PORT PASV TYPE STRU MODE RETR STOR STOU APPE ALLO [ R ] REST RNFR RNTO ABOR DELE RMD MKD PWD LIST [ ] NLST [ ] SITE SYST STAT [ ] HELP [ ] NOOP
200 Command okay.
500 Syntax error, command unrecognized.
This may include errors such as command line too long.
501 Syntax error in parameters or arguments.
202 Command not implemented, superfluous at this site.
502 Command not implemented.
503 Bad sequence of commands.
504 Command not implemented for that parameter.
110 Restart marker reply.
In this case, the text is exact and not left to the
particular implementation; it must read:
MARK yyyy = mmmm
Where yyyy is User-process data stream marker, and mmmm
server's equivalent marker (note the spaces between markers
and "=").
211 System status, or system help reply.
212 Directory status.
213 File status.
214 Help message.
On how to use the server or the meaning of a particular
non-standard command. This reply is useful only to the
human user.
215 NAME system type.
Where NAME is an official system name from the list in the
Assigned Numbers document.
120 Service ready in nnn minutes.
220 Service ready for new user.
221 Service closing control connection.
Logged out if appropriate.
421 Service not available, closing control connection.
This may be a reply to any command if the service knows it
must shut down.
125 Data connection already open; transfer starting.
225 Data connection open; no transfer in progress.
425 Can't open data connection.
226 Closing data connection.
Requested file action successful (for example, file
transfer or file abort).
426 Connection closed; transfer aborted.
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
230 User logged in, proceed.
530 Not logged in.
331 User name okay, need password.
332 Need account for login.
532 Need account for storing files.
150 File status okay; about to open data connection.
250 Requested file action okay, completed.
257 "PATHNAME" created.
350 Requested file action pending further information.
450 Requested file action not taken.
File unavailable (e.g., file busy).
550 Requested action not taken.
File unavailable (e.g., file not found, no access).
451 Requested action aborted. Local error in processing.
551 Requested action aborted. Page type unknown.
452 Requested action not taken.
Insufficient storage space in system.
552 Requested file action aborted.
Exceeded storage allocation (for current directory or
dataset).
553 Requested action not taken.
File name not allowed.