我正在编写一个 shell 脚本,该脚本应该仅由 sudo 用户列表中的用户运行,执行此操作的适当方法是什么?
我在考虑在 shell 脚本中尝试在系统目录中创建一个虚拟文件(例如 /var/run/)并将其删除,这样不在 sudo 列表中的用户将收到权限错误,但我相信必须有更合适的方法来做到这一点,最好是在 shell 脚本中检测用户是否在 sudo 列表中。谢谢你的帮助
答案1
操作起来简单多了,只需将下面的内容放在脚本的开头即可
if [ `id -u` -ne 0]
then
echo "Must be root"
exit 1
fi
在剧本的开头。
答案2
将脚本放在只有 root 可以读取的目录中。这样用户就无法意外或故意调用它,甚至无法阅读它来寻找漏洞。
答案3
当您使用 运行脚本时sudo
,sudo
可以为您检查组:
%yourgroup ALL=/your/command
当您将其放入时/etc/sudoers
,sudo
将在用户执行时检查用户是否在 yourgroup 组中sudo /your/command
。这样,您不必手动向脚本中添加新用户。