@TomL und co. bitte lasst bitte die Empfehlungen auf security zeug von dem ihr wenig Ahnung habt. Das geht in die Hose.
GhostHacker hat geschrieben:1. Ein bestimmter Benutzer soll nicht
ausführen dürfen
Dafr gibt es klassischerweise die Gruppe wheel. (Wahlweise auch passwortlos.) Ich finde aber eigentlich, dass keiner, der nicht root werden sollte das root Passwort haben sollte. Entsprechend wird das heute eher selten genutzt.
GhostHacker hat geschrieben:ausführt, soll dieser nur ein bestimmtes, weitreichendes Maß an root-Rechten bekommen.
Das ist ein Wiederspruch in sich. root-Rechte heißt eben alles zu dürfen. Du kannst beliebigen anderen Nutzern (oder Gruppen) weitestgehend beliebige (erweiterte) Rechte geben. Aber root darf nun mal alles. Das ist die Idee hinter root.
Um das nochmal z verdeutlichen hier eine Erklärung zu sudo.
GhostHacker hat geschrieben:Kann ich root übrigens einfach aus der sudoers-Datei entfernen, um keinen allmächtigen Herrscher mehr zu haben?
Nein.
root gab es schon immer (Also immer ist seit 1970 oder Unix Time 0

). Ihm ist das alles dürfen immanent.
Alle anderen Benutzer haben nur eigeschrenkte definierte Rechte + die Rechte, die sie durch ihre Gruppen bekommen.
sudo ist dagegen ein relativ neues Tool.
sudo erlaubt Befehle unter einem anderen Benutzer auszuführen. Das muss nicht root sein. Per default ist es aber root.
Führst du einen Befehl unter root aus (der alles darf) darfst du das immer.
Ich habe gerade gelesen es gibt auch noch sudo sh...

So und hier ein Script, dass dir beliebige viele Befehle ausgibt, die dir ne root shell geben.
Code: Alles auswählen
R=1; while true; do R=$((R+1)); echo "cp /bin/dash ./$R && sudo ./$R"; done
Du wirst niemals alle solche befehle blacklisten können. (Siehe auch Satz von Rice)
Entsprechen willst du eben bestimmte sehr begrenzte Rechte an andere User verteilen niemals root rechte irgend wie einschränken.
Klassisch macht man das mit Dateirechten und Gruppen. Moderner ist das Zusammenspiel aus dbus und polkit. sudo klinkt schön ist aber praktisch nicht zu kontrollieren.
Keinen kaum Anwendungen, wo das wirklich sinnvoll eigesetzt ist. Allenfalls zu Dokumentationszwecken.
Guck dich vor allem mal um, was es schon gibt. Z.B. Updates einspielen kann man mit diversen Grafischen tools als User erreichbar machen…
Und sei extrem vorsichtig mit Eigenbauten. Ein mal UID 0 heißt praktisch immer dass man auch für immer alles darf.
Gib mir die Möglichkeit Software zu installieren und ich gebe dir eine Rootshell (Ich installiere einfach ein su ohne passwortabfrage oder ein telnet mit festem Passwort…)
Sorry, aber wer global Software installieren darf ist einfach King und darf alles. PUNKT.
Alle die anderes Behaupten haben einfach keine Ahnung, davon, wie ein Rechner funktioniert.
Gib mir nano als root und ich gebe dir eine Rootshell (Einfach aus su die Passwortabfrage rauslöschen.)
Viele sachen die sich erstmal harmlos anhören eröffnen mit etwas Phantasie Millionen von Möglichkeiten alles mögliche andere zu machen.
Wie gesagt für die aller meisten Sachen, wo das sinnvoll geht, gibt es weit verbreitete Wege, wie man das bestimmten Nutzern zugänglich macht.
Wenn irgend was wirklich nur als root geht dann zu 99% aus dem Grund weil es eben indirekt impliziert, dass du damit sowieso auch beliebiges anderes machen kannst. Und er deswegen eh quasi root-rechte hat.
Und das wirst du nicht ändern können. (Und jeder der anderes behauptet, und sagt man könnte das doch irgend wie einschränken hat keine Ahnung oder lügt.) Solche aufgaben musst du dann halt an vertrauenswürdige Personen vergeben.