新規記事投稿 フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: FTPのアクセス制限?
Date: 1999/01/26 02:35:32
Reference: mesh.program/00585

1月19日に、みさっぺさんは書きました。

>FTPで自分のアカウントのホームディレクトリー以外を
>見られないように制限するにはどのような設定が必要ですか?
>
>たとえば、ホームページのアップロード時に
>自分のホームディレクトリだけをアクセス可能にする方法です

ftpdの種類によりますが、アカウントに応じてchrootをかけるような機構を
用いれば良いです。

>環境はSunのSPARC station 20 で
>www、メール、anonymous FTP 各サーバーを
>テストしています

肝心のftpdの種類とヴァージョンが書いていませんが、現在一番一般的に使われている、
wu-ftpdの2.4以降を使っているものとします。その場合、ftpaccessでguestgroupを
設定すると、そのグループに属するアカウントはguestアカウントとして扱われます。

guestアカウントは、USER、PASSによる認証が済むと、指定のディレクトリに
chrootされると共に、それ以上のUSER、PASSの発効が禁止されます。
ftpaccessでの制限もreal、anonymousと独立に、guestユーザに対する制限が
出来ます。

例えば、user1、user2と言うguestユーザを作る場合、まずは /etc/passwd で、

user1:パスワード:10:100:guest ftp user1:/home/guest/./user1:/bin/sh
user2:パスワード:11:100:guest ftp user2:/home/guest/./user2:/bin/sh

の様なエントリーを作ります。ここでユーザホームは /home/guest/./user1 の様に
'/./' で区切られています。telnet ログインの時はそのまま使われますが、
ftpログインの場合、まず前半分(ここでは /home/guest)にchrootされてから
後ろ半分(ここでは /user1)にcdされます。

ここの例ではゲストユーザに共通の/home/guestにchrootしていますが、各ユーザの
ホームディレクトリにchrootさせたいなら、/home/guest/user1/./ の様に
なりますね。

次に /etc/group ファイルで、この user1、user2のグループを特定のグループ、例えば
ここでは ftp と言うグループにします。

ftp:*:100:user1,user2

そして、ftpaccess で

guestgroup ftp

な設定をすればおしまいです。

もちろん、chroot していますから、anonymous ftp の設定と同じく、
chroot したディレクトリの下に bin、etc、lib 等を作って必要なファイル類を
ハードリンクかコピーしておかなければなりません。

# 良く分からなかったら、wu-ftpのマニュアル辺りを見て下さい。