sudoers และค่าเริ่มต้น


12

ฉันต้องอนุญาตให้ผู้ใช้เรียกใช้ sudo โดยไม่ใช้รหัสผ่านโดยไม่มี tty

ฉันมีไฟล์ภายใต้/etc/sudoers.d/คำสั่งและการตั้งค่าพิเศษที่ฉันต้องการเนื่องจากฉันไม่ต้องการแก้ไขsudoersไฟล์โดยตรง ในไฟล์นั้นฉันมีดังต่อไปนี้:

# 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

อย่างไรก็ตามเมื่อฉันsuให้กับผู้ใช้และเรียกใช้sudo -lฉันได้รับในค่าเริ่มต้น:

 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

ที่ฉันสามารถเห็นมันมีก่อนrequirettyและในที่สุดของฉัน!requirettyซึ่งไม่ทำงาน ฉันคิดนี้เกิดขึ้นเพราะมันจะแยกกันเป็นครั้งแรกปกติไฟล์จากนั้นภายใต้แฟ้มของฉันเองsudoers/etc/sudoers.d/

มีวิธีทำให้งานนี้โดยไม่แก้ไขต้นฉบับ/etc/sudoersหรือไม่?

คำตอบ:


5

ไวยากรณ์สำหรับค่าเริ่มต้นคือ (ดู man sudoers):

Default_Type ::= 'Defaults' |
                 'Defaults' '@' Host_List |
                 'Defaults' ':' User_List |
                 'Defaults' '!' Cmnd_List |
                 'Defaults' '>' Runas_List

User_List ::= User |
              User ',' User_List

ดังนั้นในบรรทัด

Defaults: myUser !requiretty

ลบช่องว่างระหว่างและDefaults:myUser

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.