web-dev-qa-db-ja.com

UBUNTU:ユーザーがログインしたときにftpサーバーはディレクトリを変更できません

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にのみアクセスできるように、権限を設定するにはどうすればよいですか?

3
heinob

ユーザーに自分のファイルのみを表示させたい場合は、vsftpd.confで「chroot」関連のオプションを設定する必要があります。 「chmod」と「chown」でftpユーザーのアクセスを制限するのは悪い方法です。ユーザーがログインするには、ftp-rootディレクトリに書き込むことができる必要があります。

1
GioMac

ユーザーが特定のディレクトリcdに変更できるようにするには、ユーザーはx権限(数値のビット1)を持っている必要があります。この権限をすべてのユーザーに許可したくない場合は、グループg+xまたはユーザーu+xに許可する必要があります。もちろん、正しい所有権も設定する必要があります。

1
Khaled

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コメント解除されていませんか?

0
user219906