VSFTPD erlaubt kein Hochladen mit virtuellen Benutzern

7

Ich versuche, VSFTPD mit virtuellen Benutzern auf einem Server unter Ubuntu 12.04 einzurichten. Ich habe den Server so konfiguriert, dass sich virtuelle Benutzer anmelden können, aber ich habe Probleme, ihn zum Hochladen zuzulassen. Meine vsftpd.conf lautet wie folgt:

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 enthält:

auth required pam_pwdfile.so pwdfile /etc/vsftpd.passwd crypt=hash
account required pam_permit.so crypt=hash

Ich habe zwei virtuelle Benutzer eingerichtet, von denen einer den gleichen Namen wie ein lokaler Benutzer hat. Sie haben jeweils ein Verzeichnis in / var / www /, das 'virtual' gehört. Soweit ich weiß, werden virtuelle Benutzer, die sich auf diese Weise anmelden, dem System als virtuelle Benutzer angezeigt. Mit dieser Konfiguration kann sich der Benutzer anmelden, aber keine Dateien hochladen. Der Fehler in /var/log/vsftpd.logist:

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"

Ich habe versucht, die Berechtigungen dieser Verzeichnisse auf alle möglichen Arten zu ändern, aber nichts scheint zu funktionieren. Ich habe das Gefühl, dass es etwas Einfaches ist, das mit Berechtigungen zusammenhängt. Irgendwelche Ideen?

Mr. Squig
quelle
Könnten Sie ls -la in / var / www und / var / www / $ USER angeben?
Sibidiba

Antworten:

0

Das Problem kann durch die Verzeichnisberechtigung verursacht werden. Ich habe vsftpd, das für mich wie folgt funktioniert hat:

anonym_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 = Willkommen beim blah FTP-Dienst.
ls_recurse_enable = NO
hören = JA
pam_service_name = vsftpd
userlist_enable = YES
tcp_wrappers = YES
David
quelle
Dies scheint nicht für virtuelle Benutzer eingerichtet zu sein. Ist es?
Mr. Squig
0

Existiert das Verzeichnis?

 /var/www/zac

und gehört dieses verzeichnis zu zac?

Versuchen:

 mkdir -p /var/www/zac; chown zac /var/www/zac; chmod 600 /var/www/zac;

und laden Sie die Datei erneut hoch

Marco
quelle
1
Da es sich zacum einen virtuellen Benutzer handelt, ist es unwahrscheinlich, dass das Verzeichnis gehört, zacda es sich nicht um einen tatsächlichen Benutzer auf dem Server handelt.
Jake Wilson
Das Verzeichnis sollte im Besitz von virtual sein und von virtual lesbar sein. Aufgrund von Chroot ist es erforderlich, dass es nicht beschreibbar ist. Sie müssen ein schreibgeschütztes Unterverzeichnis innerhalb von (im Besitz von virtual) erstellen, um darin hochladen zu können.
Sibidiba
0

Versuchen Sie dies für virtuelle Benutzer, um den Schreibzugriff zu aktivieren:

virtual_use_local_privs=YES
sibidiba
quelle
Wenn Sie die Frage noch einmal sorgfältig lesen, werden Sie feststellen, dass diese Zeile bereits Teil der Konfigurationsdatei des OP ist.
Sven
Sie haben Recht ...
Sibidiba
0

VSFTP erlaubt keine Uploads für virtuelle Benutzer, die Sie zum Erstellen eines lokalen Benutzers benötigen, oder Sie können einen einzelnen Benutzer verwenden, der allen virtuellen Benutzern zugeordnet ist. In diesem Fall können Sie die Benutzerberechtigung nicht steuern. Überprüfen Sie diesen Link - https://gist.github.com/stas/ 315765

Dipak Mallick
quelle