Beschränken Sie die Befehle sudo -i oder sudo -s aus der sudoers-Datei

693
alisacworld

Gibt es eine Möglichkeit, die folgenden Befehle sudo -ioder sudo -sdie sudoersDatei einzuschränken ?

Wenn ich !/usr/bin/sudo -ioder hinzufüge !/usr/bin/sudo -s, sudokönnen Benutzer den Befehl immer noch ausführen.

0
Und was ist mit `sudo / bin / bash` oder` sudo / bin / zsh` oder `sudo / some / umbenannt / bash`? Wenn Sie Benutzer einschränken möchten, müssen Sie * die erlaubten Befehle auf der Whitelist angeben. Daniel B vor 7 Jahren 1
Wollen Sie damit sagen, dass ich eine Whitelist machen sollte, anstatt eine schwarze Liste zu haben? alisacworld vor 7 Jahren 0

2 Antworten auf die Frage

-1
niglesias

Ich weiß, dass dies keine gute Antwort ist, da ich auf Ihre Frage nicht direkt antworten kann, aber man sudoersdort gibt es einen Abschnitt mit dem Titel Preventing Shell Escapes, der meiner Meinung nach für Sie von Interesse sein könnte:

Sobald sudo ein Programm ausführt, kann das Programm nach Belieben arbeiten, einschließlich der Ausführung anderer Programme. Dies kann ein Sicherheitsproblem sein, da es nicht ungewöhnlich ist, dass ein Programm Shell-Escapes zulässt, wodurch ein Benutzer die Zugriffskontrolle und Protokollierung von sudo umgehen kann. Übliche Programme, die Shell-Fluchten erlauben, umfassen Shells (offensichtlich), Editoren, Paginatoren, Mail- und Terminal-Programme.

Es gibt zwei grundlegende Ansätze für dieses Problem:

 restrict Avoid giving users access to commands that allow the user to run arbitrary commands. Many editors have a restricted mode where shell escapes are disabled, though sudoedit is a better solution to running editors via sudo. Due to the large number of programs that offer shell escapes, restricting users to the set of programs that do not is often unworkable.  noexec Many systems that support shared libraries have the ability to override default library functions by pointing an environment variable (usually LD_PRELOAD) to an alternate shared library. On such systems, sudo's noexec functionality can be used to prevent a program run by sudo from executing any other programs. Note, however, that this applies only to native dynamically-linked executables. Statically-linked executables and foreign executables running under binary emulation are not affected. 
-1
Matt P

Eine schwarze Liste von Sudoers ist fast sicher eine Zeitverschwendung. Es gibt einfach zu viele Problemumgehungen.

Für die Implementierung von Einschränkungen ist eine Whitelist der einzig praktische Ansatz. Achten Sie auch dann auf die Berechtigungen für alle in der Whitelist enthaltenen Befehle (eine regelmäßige Überprüfung ist erforderlich), auf alle Befehle, die Shell-Escape-Anweisungen zulassen können, und auf alle Befehle, die neue / vorhandene Dateien schreiben können.

Das sind zum Beispiel schlechte Ideen:

  • Sudo-Zugriff zulassen, um ein Skript auszuführen, das dem Benutzer gehört
  • sudo Zugang zu "weniger" geben
  • sudo Zugriff auf "cp" geben