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 dave
in beide Gruppen ein sftp1_group
, sftp2_group
um 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