FTP サーバーにアクセスするには、まずログインする必要があります。FTP サーバーは、「実ユーザー」、「ゲストユーザー」、「匿名ユーザー」の 3 種類のユーザーログインアカウントをサポートします。
実ユーザーには、FTP サーバーが動作するシステム上の端末セッションの確立を許可するアカウントがあります。ディレクトリとファイルのアクセス権の制約は受けますが、実ユーザーはディスク構造全体を参照できます。
ゲストユーザーも、FTP サーバーにログインするためのアカウントを必要とします。各ゲストアカウントは、ユーザー名とパスワードを使用して設定されます。端末セッションを確立できないように、ゲストには有効なログインシェルは割り当てません。ログイン時に、FTP サーバーは chroot(2) 操作を実行して、ゲストユーザーが参照できるサーバーのディスク構造を制限します。
FTP サーバーへのアクセスを許可できるように、実ユーザーとゲストユーザーのログインシェルを /etc/shells ファイルに列挙する必要があります。
匿名ユーザーは、ftp または anonymous をユーザー名として使って FTP サーバーにログインします。規約では、匿名ユーザーはパスワードの代わりに電子メールアドレスを入力します。
ログイン時に、FTP サーバーは chroot(2) 操作を実行して、匿名ユーザーが参照できるサーバーのディスク構造を制限します。ゲストユーザーにはそれぞれ独立した領域を作成できますが、匿名ユーザーは全員が単一のファイル領域を共有します。
実ユーザーとゲストユーザーは、個別のアカウントとパスワードを使用してログインしますが、本人以外はその存在を知りません。匿名ユーザーは、だれでも知っているアカウントでログインします。可能性として、このアカウントはだれでも使用できます。大規模なファイル配布システムのほとんどは匿名アカウントを使用して作成します。
実ユーザーの FTP サーバーへのアクセスを有効にするには、次の手順を実行します。
ユーザーに、端末セッションの確立に使用可能なユーザー名とパスワードで設定されたアカウントがあることを確認します。
詳細は、『Solaris のシステム管理 (基本編)』の第 4 章「ユーザーアカウントとグループの管理 (概要)」を参照してください。
実ユーザーが ftpaccess ファイルのクラスのメンバーであることを確認します。
ftpaccess ファイルに定義されたユーザークラスについては、「FTP サーバークラスの定義方法」を参照してください。
ユーザーのログインシェルが /etc/shells ファイルに列挙されていることを確認します。
ftpconfig スクリプトを使用して、すべての必要なシステムファイルをホームディレクトリにコピーします。ゲストユーザーとゲストのホームディレクトリがすでに存在する場合は、ftpconfig スクリプトは現在のシステムファイルでホームディレクトリ下の領域を更新します。
詳細は、ftpconfig(1M) のマニュアルページを参照してください。
匿名ユーザー用のユーザー名は anonymous か ftp ですが、FTP ゲスト用のユーザー名は固定されていません。実ユーザー名として使用できる名前であれば、どのような名前でも選択できます。
ゲストユーザーの FTP サーバーへのアクセスを有効にするには、次の手順を実行します。
useradd スクリプトを使用して、ログインシェルが /bin/true、ホームディレクトリが /root-dir/./home-dir であるようなゲストユーザーアカウントを作成します。
詳細は、useradd(1M) のマニュアルページと『Solaris のシステム管理 (基本編)』の第 4 章「ユーザーアカウントとグループの管理 (概要)」を参照してください。
この手順では、/home/guests/./guest1 は guest1 というユーザーのホームディレクトリの名前として使用されます。
# /usr/sbin/useradd -m -c "Guest FTP" -d \ /home/guests/./guest1 -s /bin/true guest1 |
ゲストアカウントにパスワードを割り当てます。
guestuser エントリを ftpaccess ファイルに追加します。
guestuser guest1 |
さらに、ftpaccess ファイルで guestgroup 機能を使用して、複数のゲストユーザーを指定することができます。ftpaccess ファイルで guest-root 機能を使用すると、ゲストユーザーのホームディレクトリパスで /./ を指定する必要がなくなります。
ftpaccess ファイルで、ゲストユーザーが class のメンバーであることを確認します。詳細は、「FTP サーバークラスの定義方法」を参照してください。
ftpconfig スクリプトを使用して、chroot 領域の必要なファイルを作成します。
/usr/sbin/ftpconfig -d /home/guests |
/bin/true が /etc/shells ファイルに列挙されていることを確認します。「/etc/shells ファイルの作成方法」を参照してください。
この例では、FTP 領域は /home/guests ディレクトリに設定されます。
# /usr/sbin/ftpconfig -d /home/guests Updating directory /home/guests |
ftpconfig スクリプトは、anonymous アカウントを作成し、ホームディレクトリに必要なファイルを作成します。
詳細は、ftpconfig(1M) のマニュアルページを参照してください。
匿名ユーザーの FTP サーバーへのアクセスを有効にするには、次の手順を実行します。
ftpconfig スクリプトを使用して、匿名ユーザーアカウントを作成します。
/usr/sbin/ftpconfig anonymous-ftp-directory |
ftpaccess ファイルで、匿名ユーザーが class に割り当てられていることを確認します。
詳細は、「FTP サーバークラスの定義方法」を参照してください。
この例では、FTP 領域は /home/ftp ディレクトリに設定されます。
# /usr/sbin/ftpconfig /home/ftp Creating user ftp Updating directory /home/ftp |
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
/etc/shells ファイルを作成します。
/etc/shells を編集します。各行のシェルにフルパスを追加します。
次に、FTP ゲストユーザー用の /bin/true が含まれる /etc/shells ファイルの例を示します。
/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 |