
我們在 RHEL6.6 上使用 devtoolset-3。使用者執行 scl enable devtoolset-3 bash 以便存取包含所有 devtoolset-3 工具的環境。
我想允許使用者以 root 身分執行命令的子集。執行此操作的正常方法是將 sudo 與 sudoers 檔案一起使用,該檔案包含命令別名以及您希望使用者能夠以 root 身分執行的命令清單。
我嘗試過各種組合,但無法想出正確的食譜。
以下是我嘗試過的一些事情:
嘗試1:
我建立一個命令別名:
Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/pkill <process name>
然後允許 myGroup 的成員無需密碼即可執行這些命令
%myGroup ALL=(ALL) NOPASSWD:SETENT: ALLOWEDCOMMANDS
通過該設置,如果我嘗試運行 sudo pkill 我得到:
抱歉,不允許使用者以 root 身分執行 '/usr/bin/scl enable devtoolset-3 'pkill' '''
嘗試2:
我修改了 sudoers 文件以獲得完整的命令:
Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/scl enable devtoolset-3 pkill <some_process_name>
但我仍然遇到同樣的錯誤。
嘗試3:
如果我將其列為/usr/bin/scl
允許的命令,則允許使用者在啟用 scl 的環境中以 root 身分執行任何命令。
誰能想出一種可靠的方法來允許使用者在啟用 scl 的 shell 中執行特定的命令清單?
答案1
以防萬一其他人遇到這個問題,我想我應該在這裡發布從紅帽支援那裡收到的答案。
事實證明,devtoolset-3 版本的 sudo 不能很好地發揮您在 /etc/sudoers 中指定的命令別名的格式。
在啟用 devtoolset-3 的 shell 中,您可以使用別名 sudo=/usr/bin/sudo。然後您的用戶將運行標準 sudo ,它可以正確處理命令別名。
使用該別名後,一切都會如預期進行。