無法限制使用者可以在啟用 devtoolset-3 的 shell 中以 root 身分執行的命令

無法限制使用者可以在啟用 devtoolset-3 的 shell 中以 root 身分執行的命令

我們在 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 ,它可以正確處理命令別名。

使用該別名後,一切都會如預期進行。

相關內容