Hinzufügen lokaler Inhalte in /etc/sudoers.d/, anstatt die Sodoers-Datei direkt über visudo zu ändern

32

Können Sie mich bitte auf einige Beispiele und detailliertere Anweisungen unter /etc/sudoers.d/ hinweisen?

Ich würde gerne einer Gruppe die Berechtigung geben, einige Befehle zu sudo, aber auf eine ordnungsgemäße Weise, um keine unnötigen Lücken im Ubuntu-Sicherheitsmodell auf einem Mehrbenutzer-Computer zu erzeugen.

In früheren Zeiten habe ich einige einfache Sudoer-Anpassungen vorgenommen, aber anscheinend ist /etc/sudoers.d/ jetzt ein geeigneterer Weg und ich würde es gerne besser verstehen.

Pawel Debski
quelle

Antworten:

43

Wie diese Frage besagt, /etc/sudoershandelt es sich um eine systemweite Konfigurationsdatei, die durch Systemaktualisierungen automatisch geändert werden kann und sehr anfällig für unsachgemäße Änderungen ist. Sie können möglicherweise den Zugriff verlieren oder Ihr System durch eine unsachgemäße Änderung nicht mehr starten.

$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#

(... some other content ...)

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Entgegen dem, was Sie vielleicht erwarten, handelt es sich bei der #includedirRichtlinie nicht um einen Kommentar . Es bewirkt, dass sudoauch alle Dateien im /etc/sudoers.dVerzeichnis gelesen und analysiert werden (die nicht mit "~" enden oder ein "." - Zeichen enthalten).

$ ls -l /etc/sud*
-r--r----- 1 root root  755 sty 20 17:03 /etc/sudoers

/etc/sudoers.d:
total 7
-r--r----- 1 root root 958 mar 30  2016 README
$ sudo cat /etc/sudoers.d/README
#
# As of Debian version 1.7.2p1-1, the default /etc/sudoers file created on
# installation of the package now includes the directive:
# 
#   #includedir /etc/sudoers.d
# 
# This will cause sudo to read and parse any files in the /etc/sudoers.d 
# directory that do not end in '~' or contain a '.' character.
# 
# Note that there must be at least one file in the sudoers.d directory (this
# one will do), and all files in this directory should be mode 0440.
# 
# Note also, that because sudoers contents can vary widely, no attempt is 
# made to add this directive to existing sudoers files on upgrade.  Feel free
# to add the above directive to the end of your /etc/sudoers file to enable 
# this functionality for existing installations if you wish!
#
# Finally, please note that using the visudo command is the recommended way
# to update sudoers content, since it protects against many failure modes.
# See the man page for visudo for more information.
#

Im Gegensatz zu /etc/sudoersden Inhalten von /etc/sudoers.dSystem-Upgrades ist es daher vorzuziehen, dort eine Datei zu erstellen, anstatt sie zu ändern /etc/sudoers.

Sie können die Dateien in diesem Verzeichnis mit dem folgenden visudoBefehl bearbeiten :

$ sudo visudo -f /etc/sudoers.d/veracrypt
  GNU nano 2.5.3        File: /etc/sudoers.d/veracrypt.tmp                      

# Users in the veracryptusers group are allowed to run veracrypt as root.
%veracryptusers ALL=(root) NOPASSWD:/usr/bin/veracrypt

Bitte beachten Sie, dass visudomöglicherweise ein anderer Editor nanoals der unter https://help.ubuntu.com/community/Sudoers beschriebene verwendet wird

Hier sind ein paar weitere Links, die ich hilfreich fand:

Pawel Debski
quelle
4
Es ist nicht wahr, dass Fehler in Dateien /etc/sudoers.dsudo nicht zum Erliegen bringen können. Diese Dateien sind mit verknüpft /etc/sudoers. Die gleichen Regeln gelten für diese Dateien.
tobltobs
2
Das ist richtig richtig, dass Sie das System durch eine falsche Datei herunterfahren KÖNNEN, unabhängig davon, ob es WENIGER WAHRSCHEINLICH ist. #includedir ist nicht nur eine einfache dumme Verkettung - auch wenn einige Prüfungen durchgeführt wurden, damit die offensichtlichsten Fehler erkannt werden und Sie sie leicht wiederherstellen können. Seien Sie jedoch vorsichtig - Sie können sich jederzeit mit einem scharfen Messer verletzen. Gehen Sie also vorsichtig damit um ;-)
Pawel Debski,
4
@RichardRiley siehe unix.stackexchange.com/questions/244064/…
Xunnamius