VSFTPD が「500 OOPS: ディレクトリを変更できません」と表示する

VSFTPD が「500 OOPS: ディレクトリを変更できません」と表示する

仮想ユーザーでFTPにログインするとすぐに「ディレクトリを変更できません」というメッセージが表示されます。vsftpd.confに次の設定があります。提案してください。

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=002
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
hide_ids=YES
user_config_dir=/data/some-path/ftp/users
local_root=/data/some-path/ftp/data/$USER
guest_username=vsftpd

答え1

ユーザーが設定されたディレクトリに chroot できるようにするには、すべての親ディレクトリに読み取りおよび実行権限が付与されている必要があります。そうでない場合は、セキュリティ上の理由から拒否されます。

答え2

chroot_local_user=YES の場合、ユーザーはホームディレクトリにバインドされると思います。FTP ユーザーのホームディレクトリを /data/some-path/ftp/data/$USER に設定してみて、chroot_local_user=NO の場合に何が起こるかを確認してください。

答え3

これはSELinuxの問題である可能性が高いので、設定してみてください

/usr/sbin/setsebool -P ftp_home_dir 1

それで問題が解決するかどうかを確認します。

答え4

同じエラー メッセージを回避するために、/etc/vsftpd.conf で次の設定を有効にしました。

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

また、次のコマンドを実行しました。

sudo chmod +x /home/ -R 

関連情報