我有一个执行三个功能的脚本:A && B && C
。
功能B
需要运行一个超级用户,而A
并C
没有。
我有几种解决方案,但都不令人满意:
sudo整个脚本:
sudo 'A && B && C'
如果不需要
A
,C
以超级用户身份运行似乎是个坏主意使脚本具有交互性:
A && sudo B && C
我可能必须输入密码,但是我希望脚本是非交互式的,因为每个功能可能要花一些时间,并且我不希望脚本等待我。好吧,这也是为什么它首先是脚本的原因,所以我不必看着它运行。
愚蠢的解决方案:
sudo : && A && sudo -n B && C
首先,先执行无操作操作似乎很愚蠢
sudo
,而且我还必须交叉指责A不会花更多的钱$sudo_timeout
。假设的解决方案(希望您告诉我它的存在):
sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C'
这会在一开始提示您输入密码,然后仅在需要时使用该凭据。
您对这一切有何看法?对于这个问题没有解决方案,我感到非常惊讶,因为我认为这是一个非常普遍的问题(关于make all && sudo make install
)
A
和C
部分su -l some_non_priviliged_user
。没有超时问题,也没有对A和C的特权。我认为4不可能,sudo
对于用户来说似乎是“全局状态”。