
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