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

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

我有 2 个用户账户,酒吧

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

sudo su root-c'./运行我的脚本'

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

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

我还想允许用户酒吧以其他用户的身份执行命令,但只能是子集而不是 root 用户,即:

sudo su bar-c'./运行我的脚本'

但不是

sudo su root-c'./运行我的脚本'

这可能吗 ?

答案1

是的,这当然有可能。

首先,您需要修复对 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.

相关内容