我需要一个脚本来创建一个屏幕会话并在其中运行命令,然后分离并继续使用其他屏幕。所以我需要类似的东西screen -S vault -d -m $HOME/vault/v.sh
。但是,v.sh
需要 sudo 权限。我有什么选择?
- 保持原样并将整个脚本作为 运行
sudo
。问题:其他脚本/会话也将作为 运行sudo
,这是不可取的。 sudo
在开始处插入:sudo screen -S vault -d -m $HOME/vault/v.sh
。- 在调用之前插入
v.sh
:screen -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,哪些不需要。