
Ich erstelle einen neuen Benutzer mit den folgenden Details:
useradd -d /var/www/html/testuser.com -G users testuser
Ich gehe weiter, indem ich ein neues Passwort für den Benutzer erstelle und versuche, mich über SSH anzumelden. Ich lande auf /var/www/html/testuser.com, kann aber immer noch in die Verzeichnisse zurückgehen. Ich möchte die Benutzerberechtigungen so einschränken, dass sie nur den Inhalt von testuser.com und den dazugehörigen Verzeichnissen verwalten können (damit sie alle normalen Vorgänge ausführen können). Ich möchte nicht, dass der Benutzer in den Verzeichnissen zurück navigieren und effektiv Root-Zugriff haben kann.
Antwort1
Benutzer haben nicht „effektiv Root-Zugriff“, nur weil sie andere Verzeichnisse durchsuchen können. Alle Benutzer mit Shell-Zugriff können die Softwareinstallation durchsuchen – das sind schließlich keine vertraulichen Informationen, da sie von einer beliebigen Anzahl von Websites heruntergeladen werden können. Wenn es Verzeichnisse gibt, die Sie nicht allen Shell-Benutzern zugänglich machen möchten, erteilen Sie ihnen entsprechend restriktive Berechtigungen.
Wenn Sie eine zweite Sicherheitsebene wünschen, können Sie die Konten stärker einschränken. Wenn Sie diesen Benutzern nur das Durchsuchen, Hoch- und Herunterladen von Dateien unter erlauben möchten /var/www/html/testuser.com
, dann geben Sie ihnen kein Shell-Konto, sondern ein eingeschränktes Konto, das nur SFTP verwenden kann. Sie können Optionen für ein bestimmtes Konto insshd_config
mit einem Match
Block. (Setzen Sie diesen an das Ende der Datei, da die Match
Direktive bis zur nächsten Match
Direktive oder bis zum Ende der Datei reicht.)
Match User testuser
Force-command internal-sftp
ChrootDirectory /var/www/html/testuser.com
Wenn Sie den Benutzern die Verwendung einiger weiterer Befehle wie scp und rsync, aber keinen allgemeinen Shell-Zugriff erlauben möchten, verwenden SieRSSoderAbonnierenals Shell für ihr Konto und installieren und konfigurieren Sie rssh oder scponly, um anzugeben, welche Befehle Sie zulassen möchten (sieheBenötigen Sie eine Shell für SCP?).
Wenn Sie einem Shell-Konto nur die Ausführung einiger Whitelist-Programme erlauben möchten, machen Sie deren Shell zu einemeingeschränkte Schale. Beachten Sie, dass diese Benutzer je nach Dateiberechtigungen auf Dateien außerhalb ihres Home-Verzeichnisses zugreifen können.
Wenn Sie vollen Shell-Zugriff gewähren möchten, aber alles außer den Home-Verzeichnissen unsichtbar machen möchten, müssen Sie eine ArtGefängnisDie schwächste Form des Gefängnisses ist einChroot-Gefängnis, wodurch der Benutzer auf einen Zweig des Verzeichnisbaums beschränkt wird. Die Beschränkung eines Benutzers auf ein Chroot ist genauso einfach wie die Angabe ChrootDirectory
in sshd_config
; da der Benutzer das Jail jedoch nicht verlassen kann, muss das Verzeichnis alle Programme und deren Daten enthalten, die der Benutzer verwenden wird. Sie können verwendenHalterungen bindenum einige Verzeichnisse (z. B. /usr
) innerhalb des Jails sichtbar zu machen.
Antwort2
Schauen Sie sich man 5 sshd_config
die Option an ChrootDirectory
.
Antwort3
Sie können die Berechtigungen /var/www/html
so ändern, dass nur Root die Dateien/Ordner anzeigen/ändern kann.
Wie:
chown root:root /var/www/html