Was bestimmt, welche Linux-Befehle Root-Zugriff benötigen? Ich verstehe die Gründe, warum es wünschenswert ist, apt-get
dass beispielsweise root
Privilegien erforderlich sind ; aber was unterscheidet diese Befehle vom Rest? Handelt es sich lediglich um das Eigentum und die Ausführungsberechtigungen der ausführbaren Datei?
linux
root
privileges
Brian Dobby
quelle
quelle
open
und bekommen "Erlaubnis verweigert". Einige Apps überprüfengetuid
und funktionieren nicht mehr, wenn sie nicht von root aufgerufen werden. Einige sind im physischen Besitz von root und nur der Eigentümer darf sie ausführen (siehechmod
). Wenn Sie sich fragen, ob der App-Header ein "Needs Root" -Zeichen enthält, lautet die Antwort "Nein". Es gibt keine solche Sache afaikAntworten:
In Linux, an einer Stelle die Root - Rechten waren in die „Fähigkeiten“ aufgeteilt, so können Sie eine vollständige Liste der Wurzel der besonderen Privilegien erhalten , indem in dieser Dokumentation suchen:
man 7 capabilities
.Um Ihre Frage zu beantworten, muss ein Befehl als root ausgeführt werden, wenn eine dieser Berechtigungen erforderlich ist, und für die ausführbare Nicht-Skript-Datei ist in den Dateimetadaten nicht die entsprechende Funktion festgelegt (z. B. wenn für ein Python-Skript die Funktion erforderlich ist, dann die Funktion) müsste sich in dem in der shebang-Zeile angegebenen Python-Interpreter befinden).
Beachten Sie, dass einige Befehle, für die Root-Zugriff erforderlich ist, nicht erforderlich sind,
sudo
da das SUID-Bit in ihrer ausführbaren Datei festgelegt ist. Dieses Bit bewirkt, dass die ausführbare Datei als Eigentümer (normalerweise root) ausgeführt wird, wenn sie von einem Benutzer ausgeführt wird, der über Ausführungszugriff verfügt. Ein Beispiel istsudo
, dass das Ändern von Benutzern eine privilegierte Aktion ist, die sie ausführen müssen.BEARBEITEN: Aus Ihrer Frage geht hervor, dass Sie möglicherweise die Idee haben, festzustellen, ob für einen Befehl Root-Zugriff erforderlich ist, bevor Sie ihn ausführen. Das ist nicht der Fall. Ein Programm benötigt manchmal Root-Rechte und manchmal auch keine. Dies kann eine Entscheidung des Programms sein, die auf Daten zurückzuführen ist, die es zur Laufzeit zur Verfügung stellt. Rufen Sie zum Beispiel
vim
einfach so ohne Argumente auf und sagen Sie ihm dann durch eine Reihe von Tastendrücken und Einfügen, dass er etwas in eine Datei schreiben soll, für das er keine Schreibberechtigung hat, oder führen Sie möglicherweise einen anderen Befehl aus, für den selbst Root-Berechtigungen erforderlich sind. Nichts über den Befehl vor der Ausführung kann darauf hinweisen, dass er möglicherweise Root-Zugriff erfordert. Dies kann nur an dem Punkt festgestellt werden, an dem versucht wird, etwas zu tun, das dies erfordert.Wie auch immer, hier sind nur sehr wenige Beispiele aus der referenzierten Manpage der Privilegien von root:
quelle
Es kommt hauptsächlich darauf an, was das Tool oder Programm leistet . Denken Sie daran, dass ein Nicht-Superuser nur Dateien berühren kann, die ihm gehören oder auf die er Zugriff hat. Jedes Tool, das in der Lage sein muss, auf alles zuzugreifen, benötigt Superuser-Zugriff, um das zu tun, was es tut. Eine kurze Auswahl von Dingen, die möglicherweise Superuser-Zugriff erfordern, sind unter anderem:
/etc
)/lib
und/usr/lib
) oder Binärdateien (/bin
,/usr/bin
)renice
)quelle
Ich denke, es entspricht der Identität des Benutzers, Berechtigungen zu überprüfen, und nicht der Reihenfolge, in der die Berechtigungen aufgeteilt werden. Dateien und Benutzer sind privilegiert und Befehle sollten nicht geteilt werden.
quelle