Antworten:
Stellen Sie sicher, dass die folgende Zeile vorhanden ist
chroot_local_user=YES
Setzen Sie das Benutzerverzeichnis auf /var/www/
, wenn Sie das Benutzerverzeichnis für vorhandene Benutzer ändern möchten, können Sie Folgendes verwenden:
usermod --home /var/www/ username
Setzen Sie dann die erforderliche Berechtigung auf /var/www/
user_sub_token
Wenn Sie das Basisverzeichnis des Benutzers nicht ändern möchten, können Sie Folgendes verwenden:
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
:Erstellen Sie automatisch ein Basisverzeichnis für jeden virtuellen Benutzer basierend auf einer Vorlage. Wenn beispielsweise das Ausgangsverzeichnis des über guest_username angegebenen realen Benutzers / ftphome / $ USER lautet und user_sub_token auf $ USER festgelegt ist, wird der virtuelle Benutzer beim Anmelden (in der Regel chroot () 'ed) angemeldet das Verzeichnis / ftphome / test. Diese Option wirkt sich auch aus, wenn local_root user_sub_token enthält.
Verzeichnis erstellen und Berechtigungen einrichten:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
Einmal neu starten vsftpd
und testen Sie Ihr Setup.
Beispiel für eine erfolgreiche Ausgabe:
[root@mail tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts?
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r-- 1 787 787 24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.
$USER
for ein Suffix setzen können local_root
, z. B. /home/$USER/ftp
(wodurch Benutzer in das ftp
Unterverzeichnis ihres Ausgangsverzeichnisses verschoben werden).
local_root
der Benutzer in das tatsächliche Home-Verzeichnis wechselt.
Du kannst das:
usermod --home /var/www/ username
Ich habe Rahul Patils obigen Vorschlag benutzt:
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
Aber ich konnte nicht verstehen, warum ich mich nur mit einem Benutzer anmelden konnte. Dann stellte ich fest, dass wir nicht in ein Stammverzeichnis chrooten konnten (in diesem Fall /home/$USER/www-data
), das über Schreibzugriff verfügt. Also entferne ich den Schreibzugriff mit:
# chmod a-w /home/$USER/www-data
HINWEIS: Ändern Sie dies $USER
mit Ihrem Benutzer.
Aktivieren Sie die chroot
Optionen in vsftpd.conf
und erstellen Sie einen separaten Benutzer, dessen Homedir auf festgelegt ist /var/www
.
chroot
Optionen invsftpd.conf
und erstellen Sie einen separaten Benutzer, dessen Homedir auf festgelegt ist/var/www
.