Beschränken Sie den SFTP-Benutzer auf mehrere Ordner

Beschränken Sie den SFTP-Benutzer auf mehrere Ordner

Ich übersehe wahrscheinlich etwas ganz Offensichtliches, aber ist es möglich, eine Liste von Ordnern (nicht nur das Home-Verzeichnis des Benutzers) anzugeben, auf die ein Benutzer über SFTP zugreifen kann?

z.B

Admin -> Full root access  
WebDev1 -> Access to the primary vhost folder and sub directories  
SysAdmin1 -> Access to all folders, except the vhost folder  
Manager1 -> Access to vhost folder, and phpMyAdmin install folder  

Ich kann es für die Benutzer „Admin“ und „WebDev1“ problemlos zum Laufen bringen, aber nicht für die anderen beiden.

Dem Benutzer „Manager1“ möchte ich Zugriff auf Folgendes gewähren (einschließlich Unterverzeichnisse):

/data/vhosts  
/usr/share/phpMyAdmin  

Dies ist ein Centos 7-System mit SSHD. Ich wäre für jede Hilfe dankbar, da mir das Problem schon seit einigen Stunden Rätsel aufgibt.

Antwort1

Schlüsselwörter im Zusammenhang mit dem, was Sie tun möchten, sindSFTP chroot Gefängnis

Sie müssen Ihre sshd_config ändern. Entfernen Sie zuerst die Kommentarzeichen aus der Zeile, um SFTP zu aktivieren. Das entspricht ungefähr dem Folgenden:

Subsystem sftp /usr/lib64/ssh/sftp-server

Unten in sshd_config haben Sie möglicherweise Folgendes in einer Vorlage, die auskommentiert ist. Sie möchten konkret etwas wie das hier:

# jail only user dave to folder /dave_sftp/
Match User dave
   ChrootDirectory /dave_sftp
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail only user ron to folder /ron_sftp/
Match User ron
   ChrootDirectory /ron_sftp
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail users that are in group sftp1_group to the folder /sftp1_group/
Match Group sftp1_group
   ChrootDirectory /sftp1_group
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail users that are in group sftp2_group to the folder /sftp2_group/
Match Group sftp2_group
   ChrootDirectory /sftp2_group
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

Einen bestimmten Benutzer in einen bestimmten Ordner zu sperren ist ziemlich unkompliziert. Gemäß Ihrer Frage vonGeben Sie eine Liste von Ordnern an, auf die verschiedene Benutzer zugreifen können, es ist nur etwas Handarbeit Ihrerseits, eine separate Gruppe zu erstellen und sie einem bestimmten Ordner zuzuordnen, den Sie verwenden möchten, und diese Benutzer in die entsprechenden Gruppen einzufügen, die den Ordnern entsprechen, für die Sie ihnen eingeschränkten SFTP-Zugriff gewähren möchten. Fügen Sie Benutzer beispielsweise davein beide Gruppen ein sftp1_group, sftp2_groupum diesem Benutzer Zugriff auf mehrere Ordner zu gewähren.

Ein sehr gutes Beispiel findet sich auch hier: https://serverfault.com/questions/591781/creating-sftp-users-and-jailing-to-chroot-on-centos-user-authentication-error

beachten

Alle Ordner bis zum Chroot-Home müssen dem Root-Benutzer gehören und dürfen nur von diesem beschreibbar sein. Die Ordner dürfen nicht von einer Gruppe beschreibbar sein – auch nicht, wenn es sich bei der Gruppe um Root handelt.

hier ist ein weiteres Beispiel:https://askubuntu.com/questions/261663/wie-kann-ich-sftp-mit-chrooted-groups-einrichten

verwandte Informationen