
Was schützt auf einem Mehrbenutzersystem davor, dass ein Benutzer über Root auf die Dateien anderer Benutzer zugreift? Als Kontext basiert die Frage nach meinem Verständnis wie folgt:
Es gibt zwei Befehle im Zusammenhang mit Root-Rechten, sudo
und su
. Mit sudo
werden Sie nicht zu einem anderen Benutzer (auch nicht zu root). sudo
verfügt über eine vordefinierte Liste genehmigter Befehle, die es in Ihrem Namen ausführt. Da Sie weder root noch ein anderer Benutzer werden, authentifizieren Sie sich einfach mit Ihrem eigenen Passwort.
Mit su
werden Sie tatsächlich Root oder ein anderer Benutzer. Wenn Sie Benutzer Bob werden möchten, benötigen Sie Bobs Passwort. Um Root zu werden, benötigen Sie das Root-Passwort (das auf einem Mehrbenutzersystem definiert würde).
Referenzen:wietogeek.com:
su
wechselt Sie zum Root-Benutzerkonto und erfordert die Eingabe des Passworts des Root-Kontos.sudo
Führt einen einzelnen Befehl mit Root-Berechtigungen aus – es wechselt nicht zum Root-Benutzer.
Und
Wenn Sie den Befehl su bob ausführen, werden Sie aufgefordert, Bobs Passwort einzugeben, und die Shell wechselt zu Bobs Benutzerkonto. Ähnliche Beschreibung untercomputerhope.com
„sudo“ ist eine binäre Root-Setuid, die Root-Befehle im Namen autorisierter Benutzer ausführt.
Wenn Sie Root sind, haben Sie Zugriff auf alles. Jeder, der nicht zum Zugriff auf das Konto eines anderen Benutzers berechtigt ist, erhält das Root-Passwort nicht und hat auch keine sudo
Definitionen, die es zulassen.
Das alles macht Sinn, bis man sich etwas ansieht wiedieser Link, ein Tutorial zur Verwendung sudo -V
und sudo su -
zum anschließenden Erlangen des Root-Rechts nur mit Ihrem eigenen Passwort.
Wenn jeder Benutzer ohne Root-Passwort Root werden kann, welcher Mechanismus schützt die Benutzerdateien vor unbefugtem Zugriff?
Antwort1
DerwesentlichDer Unterschied zwischen sudo
und su
ist der Mechanismus, der zur Authentifizierung verwendet wird. Bei su
muss der Benutzer das Passwort kennen root
(das streng geheim sein sollte), während sudo
normalerweise so konfiguriert ist, dass nach dem Passwort des Benutzers gefragt wird. Um zu verhindern, dass alle Benutzer Chaos anrichten, können die durch den Befehl freigegebenen Berechtigungen sudo
glücklicherweise mithilfe der /etc/sudoers
Datei konfiguriert werden.
Beide Befehle führen recht häufig einen Befehl als ein anderer Benutzer aus root
.
sudo su -
funktioniert in dem von Ihnen angegebenen Beispiel, weil der Benutzer (oder eine Gruppe, in der der Benutzer Mitglied ist) in der /etc/sudoers
Datei konfiguriert ist. Das heißt, sie sinderlaubtzu verwenden sudo
. Damit ausgerüstet verwenden sie , sudo
um vorübergehend root
Privilegien zu erlangen (was standardmäßig der Fall ist, wenn kein Benutzername angegeben ist) und root
eine weitere Shell zu starten ( su -
). Sie haben nun root
Zugriff, ohne root
das Passwort von zu kennen.
Umgekehrt gilt: Wenn Sie dem Benutzer die Verwendung nicht gestatten, sudo
kann er nicht sudo su -
.
Distributionen haben im Allgemeinen eine Gruppe (oft genannt wheel
), deren Mitglieder alle Befehle ausführen dürfen sudo
. Wenn sie aus dieser Gruppe entfernt werden, bedeutet dies, dass sie sudo
standardmäßig überhaupt nicht mehr verwenden können.
Die Zeile, /etc/sudoers
die dies bewirkt, ist:
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
Durch das Entfernen von Benutzern aus dieser Gruppe wird Ihr System zwar sicherer, es hätte jedoch auch zur Folge, dass Sie (oder andere Systemadministratoren) im Namen Ihrer Benutzer mehr Verwaltungsaufgaben am System ausführen müssten.
Ein sinnvollerer Kompromiss wäre die Konfiguration, sudo
die Ihnen eine feinere Kontrolle darüber gibt, wer sudo
welche Befehle verwenden darf und wer nicht (anstelle der Standardeinstellung vonalleBefehle). Beispiel:
## Allows members of the users group to mount and unmount the
## cdrom as root
%users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
(nur sinnvoll, wenn die vorherige %wheel-Zeile auskommentiert ist oder sich keine Benutzer in der wheel
Gruppe befinden).
Vermutlich sind Distributionen nicht standardmäßig mit dieser feineren Konfiguration ausgestattet, da sich die Anforderungen des Administrators an seine Benutzer und sein System nicht vorhersagen lassen.
Fazit: Informieren Sie sich über die Einzelheiten sudo
und Sie können aufhören, sudo su -
andere Befehle zuzulassen, die dem Benutzer keinen root
Shell-Zugriff oder Zugriff auf Befehle gewähren, die die Dateien anderer Benutzer ändern können. Sie sollten sich gut überlegen, wem Sie die Verwendung erlauben sudo
und in welchem Umfang.
WARNUNG:visudo
Verwenden Sie den Befehl immer zum Bearbeiten der sudoers
Datei, da er Ihre Änderungen für Sie überprüft und Sie vor der peinlichen Situation bewahrt, dass eine falsch konfigurierte Datei (aufgrund eines Syntaxfehlers) Sie daran hindert, sudo
Fehler zu bearbeiten. Dies gilt insbesondere für Debian/Ubuntu und Varianten, bei denen das root
Konto standardmäßig deaktiviert ist.
Antwort2
Es gibt zwei Befehle im Zusammenhang mit Root-Rechten,
sudo
undsu
. Mitsudo
werden Sie nicht zu einem anderen Benutzer (auch nicht zu root).sudo
hat eine vordefinierte Liste genehmigter Befehle, die es in Ihrem Namen ausführt (das beantwortet meine Frage im Kommentar, wie Sie ausgewählten Benutzern selektive Rechte erteilen). Da Sie weder root noch ein anderer Benutzer werden, authentifizieren Sie sich einfach mit Ihrem eigenen Passwort.
Das ist falsch. Der offensichtlichste Unterschied zwischen su
und sudo
besteht darin, dass letzteres normalerweise so konfiguriert ist, dass es nach Ihrem eigenen Passwort statt nach dem Passwort des Zielbenutzers fragt, und das sudo
ist flexibler. Der Sinn beider besteht darin, Sie zu einem anderen Benutzer zu machen. su
kann einen bestimmten Befehl ausführen und sudo
eine interaktive Shell starten, sie haben nur unterschiedliche Standardmodi.
Am häufigsten haben Sie eine Gruppe, konventionell benanntwheel
sudo
, das jeden Befehl als beliebiger Benutzer ausführen darf. Manchmal möchten Sie jedoch einen Benutzer darauf beschränken, einen bestimmten Befehl nur als bestimmter Benutzer auszuführen. Dies ist im Vergleich zu flexibler su
.
Mit
su
werden Sie tatsächlich Root oder ein anderer Benutzer. Wenn Sie Benutzer Bob werden möchten, benötigen Sie Bobs Passwort. Um Root zu werden, benötigen Sie das Root-Passwort (das auf einem Mehrbenutzersystem definiert würde).
Sie können sich auch mit jedem anderen Benutzer sudo
mit Ihrem eigenen Kennwort anmelden, vorausgesetzt, die Regeln in /etc/sudoers
sind so eingerichtet, dass Sie dies zulassen. sudo
Sie können damit jedoch die Befehle einschränken, die ein Benutzer ausführen kann, und Sie müssen die Kennwörter bestimmter Benutzer nicht preisgeben oder müssen für bestimmte Benutzer überhaupt kein Kennwort angeben, wodurch reguläre Anmeldungen verhindert werden.
Wenn Sie Root sind, haben Sie Zugriff auf alles. Jeder, der nicht zum Zugriff auf das Konto eines anderen Benutzers berechtigt ist, erhält das Root-Passwort nicht und hat auch keine
sudo
Definitionen, die es zulassen.
Das alles macht Sinn, bis Sie sich etwas wie [diesen Link][1] ansehen. Dabei handelt es sich um ein Tutorial zur Verwendung
sudo -V
und zum anschließendensudo su -
Erlangen des Root-Rechts nur unter Verwendung Ihres eigenen Passworts.
Wenn jeder Benutzer ohne Root-Passwort Root werden kann, welcher Mechanismus schützt die Benutzerdateien vor unberechtigtem Zugriff? [1]:http://home.ubalt.edu/abento/linux/terminal/sudo.html
Druckt zunächst sudo -V
die Version Ihrer sudo
Binärdatei und sudo -v
validiert die zwischengespeicherten Anmeldeinformationen. Diese sind für den späteren Teil irrelevant.
Zweitens sudo su
ist dies ziemlich dumm, da bereits eine sudo
Option zum Starten einer interaktiven Shell als angegebener Benutzer ( sudo -i
) vorhanden ist und es wirklich dumm ist, ein Tool mit Berechtigungsautorisierung ( sudo
) auszuführen, um ein anderes Tool mit Berechtigungsautorisierung ( su
) auszuführen.
Drittens sollte „jeder Benutzer“ unbedingtNICHTin der Lage sein, Root zu werden. Wenn dies möglich ist, ist Ihr gesamtes System völlig ungesichert. Der Root-Benutzer ist allmächtig und kann alles tun, und das Ausführen eines Befehls als Root ist nur eine der Verwendungsmöglichkeiten von . sudo
Es handelt sich um ein allgemeines Autorisierungstool, mit dem ein bestimmter Benutzer einen bestimmten Befehl als bestimmter Benutzer ausführen kann.
Antwort3
Die kurze Antwort lautet: Das können Sie nicht.
Wenn Sie jemandem (z. B. simth) Zugang zur Sudoer-Gruppe gewähren, kann er ein Konto einrichten und sudo su -
dann Root werden, dann ein anderer Benutzer (z. B. wesson). Dies ist eine alternative Möglichkeit, simth das Root-Passwort zu geben. Er (smith) kann jedoch das Root-Passwort ändern.
Stellt außerdem fest, dass
1) Sie müssen in /etc/sudoers
einer Zeile wie folgt angeben:
%sudo ALL=(ALL:ALL) ALL
2) Smith (im obigen Beispiel) muss in der Sudo-Gruppe sein.
dies ist keine Standardeinstellung.
Sie müssen jemandem (Smith) vollkommen vertrauen, um sudo su -
Zugriff zu gewähren.
Antwort4
Keine dieser Antworten geht in irgendeiner Weise auf die Frage ein. Die richtige Antwort lautet: Dateiberechtigungen verhindern, dass ein Benutzer, einschließlich root, auf die Datei eines anderen Benutzers zugreift. Ja, es gibt Möglichkeiten, root daran zu hindern, Ihre Dateien (oder Verzeichnisse, bei denen es sich um Dateien handelt) zu lesen und in sie zu schreiben.
Ein Verzeichnis kann beispielsweise folgende Einträge enthalten:
drwxrwxr-x 13 root root 8192 17. Jan. 15:38 bash-5.2.15 drwxr-xr-x 15 root root 4096 20. Jan. 08:13 bitcoin drwxr-xr-x 8 root root 4096 6. Dez. 16:37 boost_1_84_0 -rwx------ 1 root root 13210 19. Jan. 17:44 doit_configure -rwx------ 1 root root 7491 17. Okt. 11:44 doit_configure_bash
Verzeichnisse beginnen mit einem „d“. Normale Dateien beginnen mit einem „-“. Dann gibt es die Berechtigungen für die Datei/das Verzeichnis, z. B. rwxrwxrwx, unterteilt in drei Abschnitte: Besitzer, Gruppe und Sonstiges. r=Lese-, w=Schreib- und x=Ausführungsberechtigung.
Die Befehlsdienstprogramme „su“ und „sudo“ helfen beim Zugriff, sind jedoch nicht die eigentliche Antwort auf die ursprüngliche Frage.