Also bin ich auf einer VPS - CentOS Linux Installation. Ich habe vsFTPd auf dem Server. Ich habe momentan SFTP-Zugriff auf den Server über meinen Root-Benutzer, versuche aber jetzt, einen neuen Benutzer mit FTP-Zugriff auf ein bestimmtes Verzeichnis nur auf dem Server zu erstellen. Ich habe Folgendes ausgeführt:
1. mkdir /var/www/mydomain.com
2. mkdir /var/www/mydomain.com/html
3. useradd <-username>
4. passwd <-username>
5. chown –R <-username> /var/www/mydomain.com
5. groupadd <-groupname>
6. gpasswd -a <-username> <-groupname>
7. chgrp -R <-groupname> /var/www/mydomain.com
8. chmod -R g+rw /var/www/mydomain.com
Ich habe Mühe, den Benutzer so zu erstellen, dass er NUR Zugriff darauf hat. /var/www/mydomain.com
Ich habe festgestellt, dass der Benutzer sich korrekt im richtigen Ordner anmeldet. Der Benutzer kann dann jedoch "zurück" zu anderen Verzeichnissen navigieren. Ich möchte, dass der Benutzer in dem bestimmten Ordner bleibt und nicht zurück "browsen" kann .
Irgendwelche Ideen?
Ich habe verschiedene Artikel zum Thema Chrooting gefunden, habe es aber einfach nicht herausgefunden, um es in den oben beschriebenen Schritten zu verwenden.
Antworten:
Es ist ganz einfach.
Sie müssen der Datei vsftpd.conf die folgende Option hinzufügen
Die Dokumentation in der Konfigurationsdatei ist selbsterklärend:
Dies bedeutet, dass der Benutzer nur Zugriff auf den Ordner hat, den Sie als STARTSEITE des Benutzers konfiguriert haben. Im Folgenden ist ein Beispiel für einen Benutzerpassworteintrag aufgeführt:
Legen Sie das Basisverzeichnis des Benutzers mit dem folgenden Befehl fest
Hinweis: In meinem Beispiel ist dieser Benutzer auch ein gültiger Benutzer für einige geplante Aufgaben in Linux. Wenn Sie nicht dieses Bedürfnis haben, können Sie die Shell des Benutzers ändern ,
/sbin/nologin
stattbash
.quelle
/etc/passwd
Datei, die einen Benutzer mit dem Namen upload_ftp darstellt, 1001: 1001 ist seine Benutzer-ID und Gruppen-ID, / var / www / sites ist das Ausgangsverzeichnis des Benutzers (und der Parameter, aus dem vsftpd liest) und / bin / bash, die Shell. Wahrscheinlich , was auf Ihrem Fall fehlt , ist ein Home - Verzeichnis für den Benutzer, und es könnte mit dem folgenden Befehl gelöst werden:usermod -d /var/www/mydomain.com <username>
. Prost :)Nachdem Sie Ihre Konfiguration geändert haben, um einzuschließen
chroot_local_user=YES
Sie können die Shell des Benutzers
/usr/sbin/nologin
so ändern, dass bei einem Verlust des Kennworts das Risiko gemindert wird (legen Sie auch das Basisverzeichnis fest). Die Shell muss ebenfalls aufgeführt sein, sonst schlägt die/etc/shells
Authentifizierung fehl.https://security.appspot.com/vsftpd/FAQ.txt
quelle
Hier sind die Schritte zum Einrichten eines Benutzers und zum Zulassen des Benutzerzugriffs nur über FTP (dh ohne SSH) sowie zum Einschränken des Zugriffs auf ein bestimmtes Verzeichnis (Benutzerhome) auf proftpd :
Neuen Benutzer hinzufügen:
adduser newusername
Passwort festlegen:
passwd newusername
Ändern Sie das Benutzer-Ausgangsverzeichnis vom Standard in einen neuen Ordner:
usermod -d /target/directory username
shells
Datei bearbeiten :vi /etc/shells
und/dev/null
am Ende hinzufügenÄndern Sie den
newusername
Eintrag in derpasswd
Datei:vi /etc/passwd
um ihn/./
vor dem hinzuzufügen,newusername
so dass der Eintrag wie folgt aussieht:newusername:x:502:502::/home/ftp/./newusernamehomedirectory/:/dev/null
Details zu den Schritten 4 & 5 hier:
Bearbeiten Sie die
/etc/proftpd/proftpd.conf
Datei und kommentieren Sie die Zeile ausDefaultRoot ~
quelle
Setzen Sie die Stammordnerberechtigungen mit Ihrem Stammkonto auf 711 .
quelle
Führen Sie diesen Befehl aus:
quelle