我正在编写一个shell脚本,应该由用户只在sudo用户列表中运行,这样做的适当方式是什么?
我在想的是在shell脚本中,尝试在系统目录中创build一个虚拟文件,例如/ var / run /,然后将其删除,这样,不在sudo列表中的用户将收到权限错误,但是我相信那里会有一个更合适的做法是,最好检测用户是否在shell脚本中的sudo列表中。 感谢您的帮助
做起来要简单多了,只要把脚本放在脚本的开头
if [ `id -u` -ne 0] then echo "Must be root" exit 1 fi
在剧本的开始。
把脚本放在一个只能由root读取的目录下。 这样,用户就不能意外地,故意地调用它,甚至读取它来查找漏洞。
当你使用sudo运行脚本时, sudo可以为你检查组:
%yourgroup ALL=/your/command
当你把这个放在/etc/sudoers ,当用户执行sudo /your/command时候, sudo会检查用户是否在你的组中。 这样你不必手动添加一个新的用户到脚本。