To access an FTP server, you must first log in. The FTP server supports three types of user login accounts for real, guests, and anonymous users.
Real users have accounts that allow them to establish terminal sessions on systems that run the FTP server. Subject to directory and file access permissions, the entire disk structure is visible to real users.
Guest users also need accounts to log in to the FTP server. Each guest account is set up with a user name and password. Functioning login shells are not assigned to guests to prevent users from establishing terminal sessions. At login, the FTP server performs a chroot(2) operation to restrict a guest's view of the server's disk structure.
Login shells for real and guest users must be listed in the /etc/shells file to allow access to the FTP server.
Anonymous users log in to the FTP server by using the either ftp or anonymous as a user name. By convention, anonymous users supply an email address when prompted for a password.
At login, the FTP server performs a chroot(2) operation that restricts the anonymous user's view of the server's disk structure. A single file area is shared by all anonymous users, unlike the separate areas that can be created for each guest user.
Real and guest users log in by using individual accounts with passwords that are known only to one person. Anonymous users log in to a well-known account that is potentially available to anyone. Most large-scale file distribution is created by using the anonymous account.
Verify that the user has an account that is set up with a user name and password that can be used to establish a terminal session.
Confirm that the real user is a member of a class in the ftpaccess file.
For information on the user classes that are defined in the ftpaccess file, see How to Define FTP Server Classes.
Verify that the user's login shell is listed in the /etc/shells file.
The ftpconfig script is used to copy all necessary system files to the home directory. When the guest user and the guest's home directory already exist, the ftpconfig script updates the area with the current system files.
For more information, see ftpconfig(1M)
Unlike the user name (anonymous or ftp) that is set for anonymous users, user names for FTP guests are not fixed. Any name that would work as a real user name can be selected.
To enable access by a guest user to the FTP server, do the following:
Use the useradd script to create a guest user account with a login shell of /bin/true and a home directory of /root-dir/./home-dir.
For more information, see useradd(1M) and Chapter 4, Managing User Accounts and Groups (Overview), in System Administration Guide: Basic Administration.
In this procedure, /home/guests/./guest1 is used as the home directory name for a user who is called guest1.
# /usr/sbin/useradd -m -c "Guest FTP" -d \ /home/guests/./guest1 -s /bin/true guest1
Assign a password to the guest account.
Add a guestuser entry to the ftpaccess file.
You can also use the guestgroup capability in the ftpaccess file to specify guest users. The guest-root capability in ftpaccess eliminates the need for the /./ in the guest user's home directory path.
Confirm that the guest user is a member of a class in the ftpaccess file. See How to Define FTP Server Classes for further information.
Use the ftpconfig script to create the required files in the chroot area.
/usr/sbin/ftpconfig -d /home/guests
Confirm that /bin/true is listed in the /etc/shells file. See How to Create the /etc/shells file.
In this example, the FTP area is set up in the /home/guests directory.
# /usr/sbin/ftpconfig -d /home/guests Updating directory /home/guests
For more information, see ftpconfig(1M).
To enable access by an anonymous user to the FTP server, follow these instructions:
Use the ftpconfig script to create the anonymous user account.
Confirm that the anonymous user is assigned to a class in the ftpaccess file.
See How to Define FTP Server Classes for further information.
In this example, the FTP area is set up in the /home/ftp directory.
# /usr/sbin/ftpconfig /home/ftp Creating user ftp Updating directory /home/ftp
Become superuser or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
Create the /etc/shells file.
Edit /etc/shells. Add the full path to each shell on a single line.
The following is an example of an /etc/shells file with a /bin/true listed for FTP guest users:
/sbin/sh /bin/csh /bin/jsh /bin/ksh /bin/remsh /bin/rksh /bin/rsh /bin/sh /usr/bin/csh /usr/bin/ksh /usr/bin/bash /usr/bin/tcsh /usr/bin/zsh /bin/true