我正在编写一个应该由用户仅在 sudo 用户列表中运行的 shell 脚本,这样做的适当方法是什么?
我在想的是在 shell 脚本中,尝试在系统目录中创建一个虚拟文件,例如 /var/run/ 并将其删除,因此不在 sudo 列表中的用户将收到权限错误,但我相信必须有一个更合适的方法,感谢您的帮助
将脚本的执行权限更改为只能由用户执行,并将脚本的所有权更改为root
. 那应该这样做。
您可以在脚本中检查 $UID 和 $EUID 的值。它们将为零,因为它们等同于根。或者,如果不是 Bash,您可以使用id -u
.
然后确保您在 sudoers 列表中:
sudo chmod 700 /path/to/scriptname
[回答评论]
抱歉 - 我不使用颠覆:我的猜测是您将需要以 sudoer 的身份运行另一个脚本,以创建具有正确权限的脚本。
不,您不必将所有权更改为 root,但如果您这样做,它将保持清洁。