
Sobald ich mich mit meinen virtuellen Benutzern in FTP anmelde, erhalte ich die Meldung „Verzeichnis kann nicht geändert werden“. Ich habe die folgende Konfiguration in vsftpd.conf. Bitte schlagen Sie vor
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
Antwort1
Damit der Benutzer per Chroot auf das konfigurierte Verzeichnis zugreifen kann, müssen anscheinend alle übergeordneten Verzeichnisse über Lese- und Ausführungsberechtigungen verfügen, da diese ihm sonst aus Sicherheitsgründen verweigert werden.
Antwort2
Ich denke, Ihre Benutzer werden mit chroot_local_user=YES an ihre Home-Verzeichnisse gebunden sein. Versuchen Sie vielleicht, das Home-Verzeichnis Ihres FTP-Benutzers auf /data/some-path/ftp/data/$USER festzulegen, und sehen Sie, was mit chroot_local_user=NO passiert.
Antwort3
Dies ist wahrscheinlich ein SELinux-Problem. Versuchen Sie die Einstellung
/usr/sbin/setsebool -P ftp_home_dir 1
und sehen Sie, ob das Problem dadurch behoben wird.
Antwort4
Ich habe die folgenden Einstellungen in /etc/vsftpd.conf aktiviert, um die gleiche Fehlermeldung zu umgehen:
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
Führen Sie außerdem den folgenden Befehl aus:
sudo chmod +x /home/ -R