编写只能由 Ubuntu 中的 sudo 用户运行的 shell 脚本

编写只能由 Ubuntu 中的 sudo 用户运行的 shell 脚本

我正在编写一个 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

当您使用 运行脚本时sudosudo可以为您检查组:

%yourgroup ALL=/your/command

当您将其放入时/etc/sudoerssudo将在用户执行时检查用户是否在 yourgroup 组中sudo /your/command。这样,您不必手动向脚本中添加新用户。

相关内容