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