Nur Leseberechtigung für SFTP-Benutzer in einem bestimmten Verzeichnis

Nur Leseberechtigung für SFTP-Benutzer in einem bestimmten Verzeichnis

Ich möchte einen speziellen SFTP-Benutzer erstellen, der nur die Berechtigung hat, alle Ordner und Unterordner in zu lesen /var/www/vhosts. Kann mir jemand dabei helfen?

Antwort1

Unix-Systeme bieten den chrootBefehl, mit dem Sie den Zugriff des Benutzers auf ein Verzeichnis in der Dateisystemhierarchie zurücksetzen können /, in dem er nicht auf „höherrangige“ Dateien und Verzeichnisse zugreifen kann.

In Ihrem Fall wäre es jedoch angebracht, ein virtuelles Chroot bereitzustellen, das vom Remote-Shell-Dienst implementiert wird. SFTP kann einfach so konfiguriert werden, dass ein lokaler Benutzer auf eine bestimmte Teilmenge des Dateisystems beschränkt wird.

in Ihrem Fall möchten Sie also chrootbeispielsweise den Benutzer foouser in das /var/www/vhosts/Verzeichnis eintragen.

Sie können für Ihre Benutzer ein Chroot-Verzeichnis einrichten, um sie auf das Unterverzeichnis zu beschränken, /var/www/vhosts/wie in /etc/ssh/sshd_config;

Benutzer foomit Passwort anlegen

sudo useradd foo
sudo passwd foo

Nur für SFTP-Gruppe erstellen

$ sudo groupadd sftp_users 

fooZu einem Benutzer für Nur-SFTP-Gruppe hinzufügen

$ sudo usermod -G sftp_users foo 

Besitzer ändern, da Lese-/Schreibberechtigung

sudo chown root.root /var/www/vhosts/

Berechtigung hinzufügen

sudo chmod 755 /var/www/vhosts/

Bearbeiten/etc/ssh/sshd_config

sudo vi /etc/ssh/sshd_config

Kommentieren Sie es aus und fügen Sie eine Zeile wie unten hinzu

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Zuletzt hinzufügen

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /var/www/vhosts/
  ForceCommand internal-sftp

(HINWEIS: MatchBlöcke müssen amENDEder sshd_configDatei.)

sshDienst neu starten

sudo service ssh restart

Mit dieser Konfiguration können Sie per SSH in den Ordner gelangen ubuntuund Dateien abrufen. Kann nicht putoderdelete

Um per SFTP in den richtigen Ordner zu gelangen /etc/passwd, bearbeiten Sie die Zeile für den Benutzer fooso:

$ sudo vi /etc/passwd

..
foo:x:1001:1001::/var/www/vhosts/:
..

fooDadurch wird der Benutzerstammordner in Ihren SFTP-Serverordner geändert .

verwandte Informationen