Solaris10 FTPログインのルートディレクトリをchrootで設定する
- 2008.09.01
- Solaris
イントラネットで使っていたとする。ユーザが使うffftpのソフトに/export/home/web/publi_html/を入力してくださいというよりも、/public_html/を入力してくださいという方が楽だし、余計なディレクトリにアクセスされずにすむ。
ということで、ftpログイン時のホームディレクトリよりは上の階層に移動できない設定をする。
使い慣れているProFTPdを使おうとも思ったが、今回はSolarisに最初から入っているFTPサーバを利用することにした。
■chrootしたいユーザを登録する(ftpaccessファイル)
ユーザ tanaka kitano sasaki を登録する。
# vi /etc/ftpd/ftpaccess
15行目のコメントアウトを外す
# guestuser username
↓
guestuser tanaka guestuser kitano guestuser sasaki
カンマで区切った、guestuser tanaka,kitano,sasaki というかたちでは有効にならない。一行に1ユーザを登録する。
■ftpログインして、lsコマンドが使えるようにする(ftpconfigコマンド)
ftpログインして、lsコマンドを発行しても一覧表示されない。
ログインディレクトリにlsコマンドを置いておく必要がある。
(ftpconfig実行前)
# ls -l /export/home/tanaka drwxr-xr-x 2 towns2 bdjtowns 512 Sep 1 06:24 cgi-bin drwxr-xr-x 2 towns2 bdjtowns 512 Sep 1 06:26 logs drwxr-xr-x 2 towns2 bdjtowns 512 Sep 1 06:24 public_html
/usr/sbin/ftpconfig コマンドを実行して、環境を整える。
# ftpconfig -d /export/home/tanaka
(ftpconfig実行後)
# ls -l /export/home/tanaka drwxr-xr-x 2 towns2 bdjtowns 512 Sep 1 06:24 cgi-bin d--x--x--x 2 root sys 512 Sep 1 08:32 dev d--x--x--x 5 root sys 512 Sep 1 08:32 etc d--x--x--x 2 root bin 512 Sep 1 08:32 lib drwxr-xr-x 2 towns2 bdjtowns 512 Sep 1 06:26 logs drwxr-xr-x 2 root sys 512 Sep 1 08:32 pub drwxr-xr-x 2 towns2 bdjtowns 512 Sep 1 06:24 public_html d--x--x--x 6 root sys 512 Sep 1 08:32 usr
dev, etc, lib, pub, usrディレクトリが作成される。
■ftpログイン直後、ディレクトリを移動する(/etc/passwd)
- ログインユーザのシェルとして、/bin/sh や /bin/trueを指定する。
- /export/home/tanaka/がルートディレクトリになる。
- ログイン直後に、public_html ディレクトリへ移動する。(ピリオドで指定する)
/etc/passwdを編集する。
tanaka:x:555804:875::/export/home/tanaka/./public_html/:/bin/sh
■ftpログインして、lsコマンドが使えるようにする(/etc/shells)
/etc/shellsを新規ファイルとして作成する。
一行ごとにシェルのパスを記述する。
/bin/trueも記述する。
/sbin/sh /bin/bash /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
■ドットファイルをアップロードできるようにする
.htaccessをアップロードしようとすると、許可されていないファイル名なのでアップできない。
550 .htaccess: Permission denied on server. (Filename (deny))
このようなエラーメッセージが表示され。
もともと、chrootの目的が、よく知らない他人様にFTPを利用させるときに使うことが多い。ということで、その配慮として初期設定がそうなっている。今回は、社内のイントラネットで利用するので.htaccessファイルをアップロードできないのは困るので変更する。
ftpaccessファイルをこのように変更する。
/etc/ftpd/ftpaccess の43行目をコメントアウトして無効にする。
path-filter guest,anonymous /etc/ftpd/filename.msg ^[[:alnum:]._-]*$ ^[.-]
↓
# path-filter guest,anonymous /etc/ftpd/filename.msg ^[[:alnum:]._-]*$ ^[.-]
参考サイト
■参考サイト
FTPサーバーのログインの設定
http://docs.sun.com/app/docs/doc/816-3965/6ma7896jg?a=view#wuftp-18-a
このページの/etc/shellsをコピーしたものが上のリスト。/bin/bashが抜けていたので足した。
きちせのさいと
http://www.kichise.com/modules/pico/10/solaris10_ftpd_chroot.html
Solaris10 FTP管理
http://infoking.hp.infoseek.co.jp/developer/linux/solaris/ftp.html
-
前の記事
X Windowを使って、MacからSolarisへ接続する 2008.08.29
-
次の記事
Solaris SMF管理コマンド 2008.09.02