我如何限制一个特定的用户可以在Linux中运行命令的用户?

我有2个用户帐户酒吧

我想允许用户foo以root用户身份执行命令,也就是说:

sudo su root -c'./ run-my-script'

sudo su bar -c'./ another-script'

sudo su another -c'./ yet-another-script

我也想允许用户执行命令作为其他用户,但只有一个子集,而不是根,即:

sudo su bar -c'./ run-my-script'

但不是

sudo su root -c'./ run-my-script'

这可能吗 ?

是的,这当然是可能的。

首先,您需要修复sudo的使用情况,使用sudo命令作为除root用户之外的其他用户执行命令(缺省情况下): sudo -u username command

然后,您可以通过/etc/sudoersconfiguration文件locking用户可以承担其身份的用户,例如完全特权的用户如下所示:

jim ALL=(ALL) ALL

而有限制的用户看起来像:

jim ALL=(admin,bill) ALL

这意味着如果我尝试执行命令作为不在列表中的用户,我会被拒绝:

 jim@mybox:~$ sudo -u nobody whoami Sorry, user jim is not allowed to execute '/usr/bin/whoami' as nobody on mybox.