如何限制特定用户可以在 linux 中运行命令的用户?

sle*_*mes 2 linux user-management user-accounts

我有 2 个用户帐户,foobar

我想允许用户foo以 root 和任何其他用户身份执行命令,即:

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

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

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

我还想允许用户以其他用户身份执行命令,但只有一个子集而不是 root,即:

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

但不是

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

这可能吗 ?

Jam*_*ale 8

是的,这当然是可能的。

首先,您需要修复您对 sudo 的使用,以 root 以外的用户身份(默认)使用 sudo 执行命令,语法为: sudo -u username command

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

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.
Run Code Online (Sandbox Code Playgroud)