Wir möchten, dass einige Benutzer in der Lage sind, zB sudo
root zu werden,
Nun, das ist das Problem, das sudo lösen soll, sodass dieser Teil einfach genug ist.
aber mit der Einschränkung, dass der Benutzer das root-Passwort nicht ändern kann.
Sie können, wie SHW in einem Kommentar hervorhob, sudo so konfigurieren, dass nur bestimmte Aktionen von bestimmten Benutzern als Root ausgeführt werden. Das heißt, können Sie erlauben user1 zu tun sudo services apache2 restart
, erlauben user2 zu tun , sudo reboot
aber nichts anderes, während man das gemietete-as-System-Administrator user3
zu tun sudo -i
. Es gibt Anleitungen, wie man sudo so einrichtet, oder Sie können hier suchen (oder fragen). Das ist ein lösbares Problem.
Ein Benutzer, dem beispielsweise die Berechtigung zum sudo -i
oder sudo
in eine Shell gewährt wurde sudo bash
, kann jedoch alles tun. Das liegt daran, dass sudo selbst zu dem Zeitpunkt, zu dem sudo die Shell startet, nicht mehr im Bild ist. Es bietet den Sicherheitskontext eines anderen Benutzers (meistens root), hat jedoch keinen Einfluss darauf, was die ausgeführte Anwendung tut. Wenn diese Anwendung passwd root
gestartet wird, kann sudo nichts dagegen tun. Beachten Sie, dass dies auch über andere Anwendungen möglich ist. Beispielsweise bieten viele der fortgeschritteneren Editoren Funktionen zum Ausführen eines Befehls über die Shell, eine Shell, die mit der effektiven UID dieses Editorprozesses (d. h. root) ausgeführt wird.
Dies ist eine Garantie dafür, dass wir uns weiterhin bei diesem Server anmelden und root werden können, unabhängig davon, was die anderen Benutzer tun werden.
Es tut uns leid; Wenn Sie wirklich "sicherstellen, dass wir in der Lage sind, uns anzumelden und das System zu verwenden, unabhängig davon, was jemand mit Root-Zugriff tut", können Sie dies (in jeder Hinsicht) nicht tun. Ein kurzes "sudo rm / etc / passwd" oder "sudo chmod -x / bin / bash" (oder was auch immer Shell Root verwendet) und Sie sind sowieso ziemlich abgespritzt. "Ziemlich abgespritzt" bedeutet "Sie müssen von einem Backup wiederherstellen und hoffen, dass sie nichts Schlimmeres als einen Fingerabdruck getan haben". Sie können einige Schritte unternehmen, um das Risiko eines versehentlichen Unfalls, der zu einem unbrauchbaren System führt, zu verringern. Sie können jedoch nicht verhindern, dass böswillige Handlungen schwerwiegende Probleme verursachen, bis hin zu dem Punkt, dass das System von Grund auf oder zumindest von Grund auf neu erstellt werden muss gute backups.
Indem Sie einem Benutzer uneingeschränkten Root-Zugriff auf ein System gewähren, vertrauen Sie darauf, dass dieser Benutzer (einschließlich der Software, die er möglicherweise ausführt, auch wenn es sich um etwas Alltägliches wie ls handelt) keine böswilligen Absichten hat und nicht versehentlich Unfug treibt. Das liegt in der Natur des Root-Zugriffs.
Eingeschränkter Root-Zugriff durch z. B. sudo ist ein bisschen besser, aber Sie müssen trotzdem darauf achten, keine Angriffsvektoren zu öffnen. Und mit Root-Zugriff gibt es viele mögliche Angriffsmethoden für Privilegien-Eskalationsangriffe.
Wenn Sie ihnen nicht vertrauen können, welche Zugriffsberechtigung root hat, müssen Sie entweder eine stark eingeschränkte sudo-Konfiguration verwenden oder dem betreffenden Benutzer auf keinen Fall den root-Zugriff gewähren, sei es sudo oder auf andere Weise.
sudo
die Berechtigung nur für bestimmte Anwendungen mit Root-Rechten erteilen. Auf diese Weise kann der Benutzer das root-Passwort nicht ändern