Bestimmten Gästen erlauben, bestimmte Befehle auszuführen

19

Ich möchte auf einigen meiner Debian / Ubuntu-Hosts einen neuen Benutzer erstellen, der in der Lage ist, den Server mit den Befehlen apt-get updateund zu aktualisieren apt-get dist-upgrade, aber ich möchte ihnen keinen vollständigen Sudo-Zugriff gewähren, um etwas anderes tun zu können. Ist das möglich? Vielleicht gibt es eine Möglichkeit, ein Skript zu erstellen, das sie nicht bearbeiten, aber ausführen können. Dieses Skript wird dann als Root-Benutzer ausgeführt.

Programster
quelle
2
Siehe man sudoersund sudo cat /etc/sudoers.
Goldlöckchen
Dank @goldilocks Ich hatte immer gedacht, dass die sudoers-Datei nur dazu gedacht ist, den Leuten zuvor root-Zugriff zu gewähren.
Programster

Antworten:

30

Sudound die /etc/sudoersDatei dient nicht nur dazu, Benutzern vollständigen Root-Zugriff zu gewähren.

Sie können die sudoers-Datei mit dem Befehl mit einem vorhandenen sudo-Benutzer bearbeiten sudo visudo

Sie können die Befehle, auf die Sie Zugriff gewähren möchten, wie folgt gruppieren:

Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot
Cmnd_Alias UPDATE_COMMANDS = /usr/bin/apt-get

Sie können diesen Befehlen dann bestimmte Benutzerberechtigungen zuweisen:

[User's name] ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS, UPDATE_COMMANDS

Dies ist im folgenden Bild zu sehen Bildbeschreibung hier eingeben:

Wenn Sie nun versuchen , sudo apt-get updateoder sudo apt-get dist-upgradediese Befehle ausführen wird nach einem Passwort , ohne zu fragen . Wenn Sie zur NOPASSWDEingabe eines Kennworts aufgefordert werden möchten, entfernen Sie das Bit, an dem Sie einem Benutzer Zugriff auf Befehlsgruppen gewähren.

Wenn Sie versuchen, etwas anderes als das auszuführen sudo Benutzer , werden Sie Eingabe eines Kennworts aufgefordert und schlagen fehl.

Verweise

Programster
quelle
6
Beachten Sie, dass die Benutzer die Berechtigung zum Ausführen apt-get, oder auch nur apt-get upgrade, gibt ihnen vollen Root - Zugriff ! In vielen Upgrade-Skripten kann der interaktive Benutzer eine Shell ausführen, beispielsweise wenn sich eine Konfigurationsdatei geändert hat. Beschränken Sie sich aus Sicherheitsgründen apt-getauf bestimmte Befehle und erzwingen Sie, dass diese nicht interaktiv sind. Siehe Ist es für meinen ssh-Benutzer sicher, für apt-get updateund ein passwortloses sudo zu erhalten apt-get upgrade?
Gilles 'SO- hör auf böse zu sein'
In meinem Fall musste ich die Zeile nach%sudo ...
Aleksey
Gibt es eine Möglichkeit, dies nur über die Befehlszeile zu tun?
Kamil Dziedzic