DARPA internet file transfer protocol daemon
ftpd [-bdkl] [-f timeout] [-T maxtimeout] [-t timeout]
The ftpd daemon is a DARPA Internet File Transfer Protocol server. It uses the TCP protocol and listens at the port specified in the FTP entry of the services file.
The ftpd daemon currently supports the following ftp requests; case isn't distinguished.
Request | Description |
---|---|
ABOR | Abort previous command |
ALLO | Allocate storage |
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 | List files in a directory (ls -l) |
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 a session |
REST | Restart incomplete transfer |
RETR | Retrieve a file |
RMD | Remove a directory |
RNFR | Specify rename-from filename |
RNTO | Specify rename-to filename |
SITE | Nonstandard 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 username |
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) |
The following nonstandard or UNIX-specific commands are supported by the SITE request.
Request | Description |
---|---|
UMASK | Change umask (e.g. SITE UMASK 002) |
IDLE | Set idle-timer (e.g. SITE IDLE 60) |
CHMOD | Change mode of a file (e.g. SITE CHMOD 755 filename) |
HELP | Give help information (e.g. SITE HELP) |
The ftp daemon will abort an active file transfer only when the ABOR command is preceded by a Telnet ``Interrupt Process'' (IP) signal and by a Telnet ``Synch'' signal in the command Telnet stream, as described in Internet RFC 959. If a STAT command is received during a data transfer, preceded by a Telnet IP and Synch, transfer status will be returned.
Because the ftpd daemon interprets filenames according to the globbing conventions used by sh, users can employ these metacharacters:
* ? [ ] { } ~
The ftpd daemon authenticates users according to these rules:
In the last case, it's recommended that the ftp subtree be constructed with care; the following rules are recommended:
Anonymous ftp will fix the root (chroot()) of the user to ~ftp, which will prevent the user from using files on other QNX nodes. This implies that ~ftp must resolve to the current node.
To restrict outbound network access to the QNX network, you can specify the -L option to Proc (see QNX OS Utilities Reference).
The server must run as the superuser to create sockets with privileged port numbers. It maintains an effective user ID of the logged-in user, reverting to the superuser only when binding addresses to sockets. The possible security holes have been extensively scrutinized, but are possibly incomplete.