sudo:抱歉,root用户无权执行

sudo:抱歉,root用户无权执行

此命令在 OpenSuSE 11.4 上失败:

root@host# sudo -S -u "coreapp_customer1_d" -g "coreapp_customer1_d"  /bin/bash -l -c "mkdir -p /home/coreapp_customer1_d/.ssh"

并附上以下信息:

Sorry, user root is not allowed to execute 
'/bin/bash -l -c mkdir -p /home/coreapp_customer1_d/.ssh' 
as coreapp_customer1_d:coreapp_customer1_d
on workdevel114.

但它可以在 OpenSuSE 12.3 上运行。

我比较了两个系统的 /etc/sudoers 文件,它们是相同的(除了注释行)。

答案1

我自己也遇到过这个问题,可以用以下方法解决

root    ALL=(ALL:ALL) ALL

visudo。重要的部分是:ALLsudoers 手册页说:

在以下示例中,用户 tcm 可以运行使用拨号器组访问调制解调器设备文件的命令。

tcm boulder = (:dialer)/usr/bin/tip,/usr/bin/cu,\ /usr/local/bin/minicom

请注意,在此示例中,仅设置组,命令仍以用户 tcm 身份运行。例如

$ sudo -g 拨号器 /usr/bin/cu

在我的上下文中,使用-g是重点,因为我想知道一个组可以写入什么:

sudo -u nobody -g some_group find . -writable 2> /dev/null > /tmp/some_group_writable.txt

答案2

我找到了一个可以解决我自己问题的方法:

在我的上下文中,-g 选项(组)是不需要的。如果在不使用该选项的情况下调用该命令,它将在旧发行版上运行。

相关内容