1

我正在编写一个应该由用户仅在 sudo 用户列表中运行的 shell 脚本,这样做的适当方法是什么?

我在想的是在 shell 脚本中,尝试在系统目录中创建一个虚拟文件,例如 /var/run/ 并将其删除,因此不在 sudo 列表中的用户将收到权限错误,但我相信必须有一个更合适的方法,感谢您的帮助

4

3 回答 3

8

将脚本的执行权限更改为只能由用户执行,并将脚本的所有权更改为root. 那应该这样做。

于 2010-01-15T07:03:48.517 回答
3

您可以在脚本中检查 $UID 和 $EUID 的值。它们将为零,因为它们等同于根。或者,如果不是 Bash,您可以使用id -u.

于 2010-01-15T07:11:22.707 回答
2

然后确保您在 sudoers 列表中:

sudo chmod 700 /path/to/scriptname

[回答评论]
抱歉 - 我不使用颠覆:我的猜测是您将需要以 sudoer 的身份运行另一个脚本,以创建具有正确权限的脚本。

不,您不必所有权更改为 root,但如果您这样做,它将保持清洁。

于 2010-01-15T07:03:25.490 回答