
Ich muss einem Benutzer erlauben, kennwortloses Sudo ohne TTY auszuführen.
Ich habe eine Datei /etc/sudoers.d/
mit den speziellen Befehlen und Einstellungen, die ich brauche, da ich keine Lust habe, die sudoers
Datei direkt zu bearbeiten. In dieser Datei habe ich Folgendes:
# My list of commands that the user can run passwordless
myUser ALL=(ALL) NOPASSWD:SETENV: /foo/bar /foo/zaz
# My new defaults.
Defaults exempt_group = myUser
Defaults !env_reset,env_delete-=PATH
Defaults: myUser !requiretty
Wenn ich jedoch su
zum Benutzer gehe und ausführe, sudo -l
erhalte ich Folgendes in den Standardeinstellungen:
Matching Defaults entries for myUseron this host:
requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin, exempt_group=myUser,
!env_reset, env_delete-=PATH, !requiretty
Wo ich sehen kann, steht zuerst requiretty
und am Ende mein !requiretty
, was nicht funktioniert. Ich nehme an, das liegt daran, dass zuerst die normale sudoers
Datei und dann meine benutzerdefinierte Datei unter analysiert wird /etc/sudoers.d/
.
Gibt es eine Möglichkeit, dies zum Laufen zu bringen, ohne das Original zu bearbeiten /etc/sudoers
?
Antwort1
Die Grammatik für die Standardeinstellungen ist diese (siehe man sudoers):
Default_Type ::= 'Defaults' |
'Defaults' '@' Host_List |
'Defaults' ':' User_List |
'Defaults' '!' Cmnd_List |
'Defaults' '>' Runas_List
User_List ::= User |
User ',' User_List
Also online
Defaults: myUser !requiretty
Entfernen Sie das Leerzeichen zwischen Defaults:
und myUser
.