以 root 身份在一行中运行命令

Jay*_*ams 8 su sudo python

我需要以 root 身份 su 并将命令作为一行运行。这是在 python 脚本中使用的。我正在寻找的是:

$ su root [some-magic] sh /home/jay/script-that-needs-executing-as-root.sh
<script output>
Run Code Online (Sandbox Code Playgroud)

这是在一个公共的 ubuntu 服务器上。运行此操作的帐户没有密码,但已设置好,所以基本上所有内容都无法访问,除了只读的python 脚本,在 ~/.profile 中,最后是

cd ~/py/main
python3 start.py
logout
Run Code Online (Sandbox Code Playgroud)

因此,他们无法真正访问服务器。在 python 脚本中,我让 su 工作,所以如果需要,用户可以输入shellasrootpython 脚本,输入 root 密码并运行命令,但我正在寻找一种以编程方式执行此操作的方法。


TL; DR - 在没有 sudo 特权的帐户上,我需要在一行中以 root 身份运行 shell 脚本。

Mun*_*nir 16

您可以使用-c选项su来传递单个命令。

su root -c 'sh /home/jay/script-that-needs-executing-as-root.sh'
Run Code Online (Sandbox Code Playgroud)

  • 完美的!非常感谢。会投票,但需要更多代表:) (2认同)