启动脚本的自动 sudo 权限

启动脚本的自动 sudo 权限

我需要在启动时运行一个脚本,我知道这需要在文件夹中完成init.d。现在这个脚本需要sudo权限,正常运行时会提示用户输入 sudo 密码。

是否可以让我的启动脚本在自动授予 sudo 权限的情况下运行?我需要授予用户无密码权限吗sudo?理想情况下,我希望它在没有任何用户交互的情况下运行。

答案1

通常,系统默认以完全 root 访问权限运行启动脚本,因此您无需执行任何操作。

请注意,脚本位置取决于init您的系统中使用的包。

对于经典的 SysVinit,启动脚本通常位于目录中,并在目录/etc/init.d中创建指示它们在启动/关闭顺序中的位置的符号链接,其中指示脚本应该运行的运行级别。 (运行级别是一种“整体系统状态”:在 RedHat 风格的系统上,如果启用了 GUI 登录,则默认运行级别为 5,否则为 3。在 Debian 风格的系统上,它通常始终为 3。)/etc/rc<number>.d/<number>

更新符号链接/etc/rc<number>.d/可能很乏味,因此通常有一个工具可以为您完成此操作。最常见的此类工具是chkconfig:它要求您在脚本的开头放置一些特殊格式的注释(请参阅man chkconfig适用于您的发行版的详细信息)。然后您可以将脚本放入/etc/init.d并运行sudo chkconfig --add <your script name>

如果您的系统使用 SysVinit 的较新替代品,例如upstartsystemd,它们可能包含 SysVinit 兼容系统,因此上述说明可能仍然适用;但您也应该考虑学习新方法,因为 SysVinit 被认为已经过时,并且对于现代多核系统而言并不是最佳选择。

相关内容