我需要在启动时运行一个脚本,我知道这需要在文件夹中完成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 的较新替代品,例如upstart
或systemd
,它们可能包含 SysVinit 兼容系统,因此上述说明可能仍然适用;但您也应该考虑学习新方法,因为 SysVinit 被认为已经过时,并且对于现代多核系统而言并不是最佳选择。