Versuchen Sie es mit diesem Handbuch. Vielleicht wird für Sie arbeiten.
Wie es geht
Installieren Sie vsftpd und eine PAM-Bibliothek
Bearbeiten /etc/vsftpd.conf
und/etc/pam.d/vsftpd
Erstellen Sie Benutzerkonten mit benutzerdefinierten Verzeichnissen (z. B. in / var / www /).
Stellen Sie die Verzeichnisse mit dem richtigen chmod
und einchown
Erstellen Sie einen Administrator mit vollem Zugriff auf den Server
- Installieren Sie
vsftpd
(Very Secure FTP Deamon) und libpam-pwdfile
erstellen Sie virtuelle Benutzer
Ich wollte FTP-Benutzer erstellen, aber keine lokalen Unix-Benutzer hinzufügen (kein Shell-Zugriff, kein Home-Verzeichnis usw.). Ein PAM (Pluggable Authentication Modules) unterstützt Sie beim Erstellen virtueller Benutzer.
sudo apt-get install vsftpd libpam-pwdfile
- Bearbeiten
vsftpd.conf
Zuerst müssen Sie die Originaldatei sichern
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
Dann erstelle eine neue
sudo vim /etc/vsftpd.conf
Kopieren Sie die folgenden Zeilen und fügen Sie sie ein. Die Datei sollte NUR diese Zeilen enthalten:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- Registrieren Sie virtuelle Benutzer
Um einen Benutzer zu registrieren, den Sie verwenden htpasswd
, gehe ich davon aus, dass Sie apache2
auf Ihrem Server arbeiten. Erstellen Sie einen vsftpd
Ordner und speichern Sie die Konfigurationsdateien.
sudo mkdir /etc/vsftpd
dann
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c bedeutet, dass wir die Datei erstellen, wenn sie noch nicht existiert. -d erzwingt MD5. Sie benötigen sie unter Ubuntu 12.04. Verwenden Sie sie einfach immer
Der Befehl fordert zur Eingabe eines Kennworts auf.
Wenn Sie später neue Benutzer hinzufügen möchten:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- Konfigurieren Sie PAM in
/etc/pam.d/vsftpd
Auch hier müssen Sie die Originaldatei sichern
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
und erstelle eine neue
sudo vim /etc/pam.d/vsftpd
Kopieren Sie diese 2 Zeilen und fügen Sie sie ein (dies sollte der einzige Inhalt sein). Ich bestehe nur auf diesen 2 Zeilen, habe viel Zeit mit dem Aufbewahren der Originale verschwendet und diese einfach hinzugefügt.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- Erstellen Sie einen lokalen Benutzer ohne Shell-Zugriff
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Sie können überprüfen, ob es mit dem Befehl id erstellt wurde: id vsftpd. Wir definieren den Benutzer mit der / bin / false-Shell aufgrund des check_shell-Parameters (auch wenn Sie ihn nicht verwenden). Wenn der Endbenutzer eine Verbindung zum FTP-Server herstellt, wird er für Rechte und Eigentum verwendet:
chmod
und chown
.
- Neustart
vsftpd
Der übliche Weg ist, init.d wie all deamon zu verwenden
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- Erstellen Sie Verzeichnisse
Je nach Konfiguration werden alle Benutzer in diesen Ordner gestellt: / var / www / user1.
Sie müssen sie mit bestimmten Rechten erstellen: Der Stammordner kann nicht beschreibbar sein!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
Hinweis: Der Benutzer kann keine Dateien oder Ordner im Stammverzeichnis erstellen.
In vsftpd.conf
we have chroot_local_user=YES
kann der Benutzer also nichts außerhalb seines Ordners sehen. Für ihn sieht der Server so aus:
Führen Sie einfach die folgenden Befehle aus:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
Der /var/www/user1
Ordner MUSS existieren oder die Verbindung schlägt fehl.
Im Moment können Sie versuchen, eine Verbindung mit Ihrem FTP herzustellen
- Erstellen Sie einen Admin-Benutzer, um auf den gesamten Server zuzugreifen
Um einen Admin-Benutzer zu erstellen, müssen wir einen neuen Benutzer bei registrieren htpasswd
.
Bevor wir dies tun, empfehle ich Ihnen, in die /etc/ftpusers
Datei einzuchecken, in der bestimmte Benutzer definiert sind, die keine Verbindung mit ftp herstellen dürfen. Ich denke, es ist nur für lokale Benutzer und nicht für virtuelle Benutzer, aber nur für den Fall, wählen Sie keinen Namen in dieser Datei.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
Jetzt müssen wir eine neue Zeile hinzufügen /etc/vsftpd.conf
chroot_list_enable=YES
Dies bedeutet, dass Ihr Benutzer in seinem Ordner (als Gefängnis) AUSSER Benutzern in der Datei / etc / abgelegt wird.
vsftpd.chroot_list
Lassen Sie uns diese Datei erstellen und unseren Benutzer hinzufügen. Die Datei ist eine einfache Zeile, die "theadmin" enthält. Fügen Sie einen Benutzer pro Zeile hinzu. Das bedeutet, dass Sie KEINEN /var/www/theadmin
Ordner erstellen müssen , der Benutzer wird sich anmelden und in starten /home/vsftpd
.
Starten Sie den Server neu und fertig!