Sudo
細粒度 sudo 權限不起作用
我已經進行了配置,
sudo
以便我可以在沒有密碼的情況下執行命令,但僅限於我在特定組中時。但是它仍然要求輸入密碼。我試試看
#↳ sudo --group docker-user -s #↳ sudo -k #drop sudo credentials #↳ groups docker-user sudo … #↳ sudo --group docker /usr/bin/docker images [sudo] password for bob
我不期待密碼。這
docker.sudo
意味著允許 groupdocker-user
,docker
作為 group執行docker
,沒有密碼。我做錯了什麼?是什麼阻止它工作。
讓我們看看配置
#↳ sudo cat /etc/sudoers.d/docker.sudo Cmnd_Alias DOCKER = /usr/bin/docker %docker-user ALL = (:docker) NOPASSWD : DOCKER #↳ sudo cat /etc/sudoers #comments removed Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" # User privilege specification root ALL=(ALL:ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL #includedir /etc/sudoers.d
更多測試
#↳ groups docker_user sudo … #↳ sudo -ll Matching Defaults entries for richard on delor-1: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin User richard may run the following commands on delor-1: Sudoers entry: RunAsUsers: ALL RunAsGroups: ALL Commands: ALL
為了擴展@ctrl-alt-delor 的答案,該頁面提到了在(版本)部分下
sudoers
man
的輔助規則的處理規則/etc/sudoers.d``Including other files from within sudoers``sudo``1.9.1
sudo 將暫停目前文件的處理並讀取 /etc/sudoers.d 中的每個文件,跳過以 ‘~’ 結尾或包含 ‘.’ 的文件名 字元以避免導致包管理器或編輯器臨時/備份文件出現問題。
但是,手冊本節的第一句話提到(包含 a )中的機器本地
sudoers
文件可以直接通過 包含,這使我相信只有那些通過包含的文件才有問題。所以,我懷疑如果原始文件有以下內容/etc/sudoers.local``.``@include /etc/sudoers.local``.``@includedir``/etc/sudoers
@include /etc/sudoers.d/docker.sudo
問題不會存在(但當然
/etc/sudoers.d
目錄的重點是使用@includedir
…)