Ich habe da vor einiger Zeit für Myrlyn einiges Material zusammengetragen:
Bei Tumbleweed / Slowroll / Leap 16.0 gibt es auch ein Paket sudo-policy-wheel-auth-self, das einige Konfigurationsschnipsel für so etwas enthält:
% rpm -ql sudo-policy-wheel-auth-self
/usr/etc/sudoers.d/50-wheel-auth-self
/usr/share/polkit-1
/usr/share/polkit-1/rules.d
/usr/share/polkit-1/rules.d/51-wheel.rules
% sudo cat /usr/etc/sudoers.d/50-wheel-auth-self
Defaults:%wheel !targetpw
%wheel ALL = (root) ALL
Bei Leap 16.0 wird der erste Benutzer (den du bei der Installation anlegst) automatisch in die wheel-Benutzergruppe eingetragen; in meinem Fall der Benutzer “sh”:
% whoami
sh
% grep '^wheel' /etc/group
wheel:x:494:sh
Der bekommt nach den Regeln oben Root-Rechte für sudo. Damit muß ich - weil das diese Regel !targetpw so angibt - mein eigenes Paßwort eingeben, nicht das von root.
Aber auch das nervt (mich genauso wie dich), also habe ich zusätzlich noch das hier in meiner /etc/sudoers (man könnte es auch in ein /etc/sudoers.d/50-no-pw eintragen), damit ich per Default kein Paßwort eingeben muß:
#
# Added 2025-06-16 sh:
#
# Per-terminal timeout (in minutes) before asking the password again; default: 5 min
# sudo -K to reset the timestamp for the current terminal so it asks again
Defaults timestamp_timeout=2
# Defaults timestamp_timeout=0
# Ask for the root password
Defaults targetpw
# Only for the wheel group: Ask for the user's password
Defaults: %wheel !targetpw
Defaults env_reset
Defaults: %wheel env_keep = "DISPLAY WAYLAND_DISPLAY XAUTHORITY XDG_RUNTIME_DIR QT_QPA_PLATFORMTHEME QT_ENABLE_HIGHDPI_SCALING"
# Allow root privileges for members of the 'wheel' user group
# %wheel ALL=(ALL:ALL) ALL
## Same thing without a password
%wheel ALL=(ALL:ALL) NOPASSWD: ALL
# Force asking for a password for 'myrlyn' and 'myrlyn-sudo'
# %wheel ALL=(root) PASSWD: /usr/bin/myrlyn
# %wheel ALL=(root) PASSWD: /usr/bin/env
# Allow root privileges for this one user (without password)
# sh ALL=(ALL) NOPASSWD: ALL
# Defaults: sh !syslog, !pam_session
Defaults !log_allowed
Damit kann ich das weitreichend konfigurieren:
-
Normalerweise kein Paßwort für die gesamte wheel-Benutzergruppe:
%wheel ALL=(ALL:ALL) NOPASSWD: ALL
An alle Security-Experten, die bei sowas einen Anfall bekommen: Kriegt euch wieder ein; nagelt einfach nicht per Default jedes System so zu, daß es unbenutzbar wird!
-
Um die normale sudo-Umgebung mit Paßwort für Myrlyn zu testen, habe ich noch ein paar Ausnahmen konfiguriert, die normalerweise auskommentiert sind, damit ich mein eigenes Programm auch benutzen kann, ohne wahnsinnig zu werden:
# %wheel ALL=(root) PASSWD: /usr/bin/myrlyn
# %wheel ALL=(root) PASSWD: /usr/bin/env
Man kann so etwas für jedes Kommando separat konfigurieren. Aber bloß nicht übertreiben, sonst wird es ganz schnell zu kompliziert.
Wie inzwischen generell üblich, ist die bevorzugte Methode, eigene Änderungen in eigenen Schnipseln in eine Datei in /etc/sudoers.d zu schreiben, die dann in der angegebenen Reihenfolge (10-abc, 20-def, …) ausgeführt werden. Dann kann man sowas nach Sinn und Zweck getrennt halten und auch irgendwo archivieren (git/GitHub!).
/etc/sudoers geht aber immer noch; darin gibt es ein %include, das die Dateien in /etc/sudoers.d ausführt. In /etc sind jetzt deine Konfigurationsdateien; die des Systems sind jetzt in /usr/etc/, für sudo also /usr/etc/sudoers.d. Aber deine werden danach ausgeführt, überschreiben also die Systemvorgaben.
Falls du noch Fragen hast, nur zu.