![允许所有用户以 root 身份执行 bash 脚本](https://linux22.com/image/718164/%E5%85%81%E8%AE%B8%E6%89%80%E6%9C%89%E7%94%A8%E6%88%B7%E4%BB%A5%20root%20%E8%BA%AB%E4%BB%BD%E6%89%A7%E8%A1%8C%20bash%20%E8%84%9A%E6%9C%AC.png)
我希望所有用户都能运行一个 bash 脚本。但是这个 bash 脚本需要 root 权限,我希望这个脚本是只读的并且以 root 权限运行
我的bash脚本:
#!/bin/bash
/sbin/swapoff -a
在我的搜索中我找到了解决方案但它不起作用,这是解决方案:
# chown root:root monshell.sh
# chmod 4755 monshell.sh
# exit
$ ./monshell.sh
但是当我以基本用户身份运行时出现此错误:swapoff:不是超级用户。
答案1
创建 su root bash 脚本很危险。bash 脚本太容易被操纵,以你意想不到的方式运行其他命令。每个新的 su root 可执行文件都是一个新的安全风险。
授予此类权限的首选方法是使用 sudo。创建文件 /etc/sudoers.d/swapoff,如下所示:
ALL ALL = /bin/swapoff -a
然后所有主机 (第二个 ALL) 上的所有用户 (第一个 ALL) 都可以运行sudo /bin/swapoff -a
。每次他们这样做时,都会将其记录到 syslog 中。