1人のクライアントユーザー(ftuser)に対してのみFTPサーバー(vsftpd)をセットアップしました。このユーザーは、フォルダー/ srv/webroot/userにアクセスできる必要があります。/srvフォルダーとすべてのサブフォルダーは私が所有しています。私はftpuserと同じグループにはいません。ここで、次の方法でユーザーのアクセス許可を実装しようとしました。
chmod 770 -R /srv
chmod 777 -R /srv/webroot/user
しかし、ユーザーがftp経由でログインしようとすると、FTPサーバーは次のように言います。
500 OOPS: cannot change directory: /srv/webroot/user
試してみるのと同じように、フォルダ全体の構造に対するユーザー権限を
chmod 777 -R /srv
これで、彼はログインできるだけでなく、ルートフォルダ(/)および他のすべてのサブフォルダ(つまり、/ etc、/ home、...)にもアクセスできます。
ユーザーがログインして/ srv/webroot/userにのみアクセスできるように、権限を設定するにはどうすればよいですか?
ユーザーに自分のファイルのみを表示させたい場合は、vsftpd.confで「chroot」関連のオプションを設定する必要があります。 「chmod」と「chown」でftpユーザーのアクセスを制限するのは悪い方法です。ユーザーがログインするには、ftp-rootディレクトリに書き込むことができる必要があります。
ユーザーが特定のディレクトリcd
に変更できるようにするには、ユーザーはx
権限(数値のビット1)を持っている必要があります。この権限をすべてのユーザーに許可したくない場合は、グループg+x
またはユーザーu+x
に許可する必要があります。もちろん、正しい所有権も設定する必要があります。
heinob-/etc/vsftpd.confに次のようなセクションがあります
# You may specify an explicit list of local users to chroot() to their home directory. If chroot_local_user is YES, then this list becomes a list of users to NOT chroot().(Warning! chroot'ing can be very dangerous. If using chroot, make sure that the user does not have write access to the top level directory within the chroot)
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
よろしいですかchroot_local_user=YES
コメント解除されていませんか?