我们在RHEL6.6 6.6上使用devtoolset-3。用户运行scl启用devtoolset-3 bash,以便使用所有devtoolset-3工具访问环境。
我希望允许用户以根用户的身份运行命令子集。通常的方法是对包含命令别名的sudoers文件使用sudo,其中包含您希望用户能够作为root用户执行的命令列表。
我试过各种组合,但我想不出正确的配方。
以下是我尝试过的一些事情:
尝试1:
我创建一个命令别名:
Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/pkill <process name>然后允许myGroup的成员在没有密码的情况下执行这些命令。
%myGroup ALL=(ALL) NOPASSWD:SETENT: ALLOWEDCOMMANDS通过这种设置,如果我尝试运行sudo pkill,就会得到:
对不起,不允许用户作为root用户执行'/usr/bin/scl启用devtoolset-3 'pkill‘“”。
企图2:
我修改了sudoers文件,使其具有完整的命令:
Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/scl enable devtoolset-3 pkill <some_process_name>但我还是会犯同样的错误。
企图3:
如果我将/usr/bin/scl列为允许的命令,则允许用户在启用scl的环境中以根用户身份执行任何命令。
有人能想出一种可靠的方法让用户在启用scl的shell中运行特定的命令列表吗?
发布于 2016-10-05 02:17:57
为了防止其他人遇到这个问题,我想我应该在这里贴出我从红帽支持中得到的答案。
原来,devtoolset-3版本的sudo没有很好地使用命令别名的格式,您可以在/etc/sudoers中指定它。
在启用devtoolset-3的shell中,您可以别名sudo=/usr/bin/sudo。然后,您的用户将运行标准sudo,它正确地处理命令别名。
有了这个别名,一切都如期而至。
https://unix.stackexchange.com/questions/311491
复制相似问题