Я пытаюсь настроить VSFTPD с виртуальными пользователями на сервере под управлением Ubuntu 12.04. Я настроил сервер, чтобы разрешить виртуальным пользователям входить в систему, но мне не удается разрешить загрузку. Мой vsftpd.conf выглядит следующим образом:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
virtual_use_local_privs=YES
guest_enable=YES
guest_username=virtual
user_sub_token=$USER
local_root=/var/www/$USER
hide_ids=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
/etc/pam.d/vsftpd
содержит:
auth required pam_pwdfile.so pwdfile /etc/vsftpd.passwd crypt=hash
account required pam_permit.so crypt=hash
У меня настроены два виртуальных пользователя, один из которых имеет то же имя, что и локальный пользователь. У каждого из них есть каталог в / var / www /, принадлежащий 'virtual'. Насколько я понимаю, когда виртуальный пользователь входит в систему таким образом, он будет отображаться в системе как виртуальный пользователь. Используя эту конфигурацию, пользователь может войти в систему, но не может загружать файлы. Ошибка, указанная в /var/log/vsftpd.log
является:
Tue Nov 20 19:49:00 2012 [pid 2] CONNECT: Client "96.233.116.53"
Tue Nov 20 19:49:07 2012 [pid 1] [zac] OK LOGIN: Client "96.233.116.53"
Tue Nov 20 19:49:11 2012 [pid 2] CONNECT: Client "96.233.116.53"
Tue Nov 20 19:49:11 2012 [pid 1] [zac] OK LOGIN: Client "96.233.116.53"
Tue Nov 20 19:49:11 2012 [pid 3] [zac] FAIL CHMOD: Client "96.233.116.53", "/test.ppm 644"
Я пробовал менять права доступа к этим каталогам разными способами, но ничего не помогало. Такое ощущение, что с разрешениями это что-то простое. Любые идеи?
VSFTP не разрешает загрузку для виртуальных пользователей, вам нужно создать локального пользователя, или вы можете использовать одного пользователя, сопоставленного со всеми виртуальными пользователями, в этом случае вы не можете контролировать разрешение пользователя, проверьте эту ссылку - https://gist.github.com/stas/315765
Каталог существует?
/var/www/zac
и принадлежит ли эта директория zac?
пытаться:
mkdir -p /var/www/zac; chown zac /var/www/zac; chmod 600 /var/www/zac;
и загрузите файл снова
Проблема может быть вызвана разрешением каталога, у меня работает vsftpd, как показано ниже:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES chown_uploads=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES ftpd_banner=Welcome to blah FTP service. ls_recurse_enable=NO listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
Попробуйте это для виртуальных пользователей, чтобы разрешить доступ для записи:
virtual_use_local_privs=YES