Beschränken Sie den Benutzerzugriff unter Linux

Beschränken Sie den Benutzerzugriff unter Linux

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_configmit einem MatchBlock. (Setzen Sie diesen an das Ende der Datei, da die MatchDirektive bis zur nächsten MatchDirektive 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 ChrootDirectoryin 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_configdie Option an ChrootDirectory.

Antwort3

Sie können die Berechtigungen /var/www/htmlso ändern, dass nur Root die Dateien/Ordner anzeigen/ändern kann.

Wie:

chown root:root  /var/www/html

verwandte Informationen