
當我在 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