如何创建屏幕并执行 sudo 命令

如何创建屏幕并执行 sudo 命令

我需要一个脚本来创建一个屏幕会话并在其中运行命令,然后分离并继续使用其他屏幕。所以我需要类似的东西screen -S vault -d -m $HOME/vault/v.sh。但是,v.sh需要 sudo 权限。我有什么选择?

  1. 保持原样并将整个脚本作为 运行sudo。问题:其他脚本/会话也将作为 运行sudo,这是不可取的。
  2. sudo在开始处插入: sudo screen -S vault -d -m $HOME/vault/v.sh
  3. 在调用之前插入v.shscreen -S vault -d -m "sudo $HOME/vault/v.sh"

最好的选择是什么?

答案1

您尚未列出的一个选项是,如果 v.sh 本身需要 sudo privs,请将其放在脚本顶部的 shebang 行中:

$ head -1 $HOME/vault/v.sh
#!/usr/bin/sudo /bin/sh

这种方法的一点优势在于,你的主脚本不需要了解哪些脚本需要 sudo,哪些不需要。

相关内容