如何在不使用 su 或 sudo 的情况下以 root 权限运行程序

如何在不使用 su 或 sudo 的情况下以 root 权限运行程序

我有一个bash需要运行的脚本根权限,但必须由普通用户调用。

困难的部分是脚本不应该要求输入密码,而且我不想使用苏多尔斯文件。我想避免使用须藤或者

这可能吗?

答案1

如果它不是 bash 脚本而是常规应用程序,您可以将其所有权授予 root 并在应用程序上设置 setuid 位。然后在执行时,应用程序运行的有效用户是 root。然而,出于安全考虑,这在许多系统中是禁止 shell 脚本执行的。这个问题unix.stackexchange.com 上确实处理了如何克服这个问题的方法。

答案2

使用须藤。如果您不想调用sudo /path/to/myscript,请编写一个单行包装器exec sudo /path/to/myscript "$@"。看允许在 shell 脚本上设置 setuid, 特别Maciej Piechotka 关于使用 sudo 的回答我对 setuid 程序的更一般性讨论

相关内容