答案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 程序的更一般性讨论。