![如何限制特定用户可以在 Linux 中运行命令?](https://linux22.com/image/536060/%E5%A6%82%E4%BD%95%E9%99%90%E5%88%B6%E7%89%B9%E5%AE%9A%E7%94%A8%E6%88%B7%E5%8F%AF%E4%BB%A5%E5%9C%A8%20Linux%20%E4%B8%AD%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我有 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.