哪个`nohup sudo` 和 `sudo nohup` 被推荐,为什么?

哪个`nohup sudo` 和 `sudo nohup` 被推荐,为什么?

它们之间有什么区别吗?一些特殊的用例会使它们中的一个比另一个更好?

答案1

一般来说,如果命令不需要root特权,您就不会以 user 身份运行它root

始终尝试以最少的权限执行。想象一下,其中存在一个错误<command>,允许攻击者注入代码,并以调用的用户的权限执行<command>

错误:但是,在这种特定情况下,我认为nohup sudo <command>可以防止sudo,而不是中的挂起<command>。所以我会选择sudo nohup <command>

编辑:事实上,根据man fork,子进程的任何信号都由父进程继承,这似乎nohup也有影响。感谢斯蒂芬·基特提到这一点。

这样你就可以快乐的奔跑了nohup sudo <command>

编辑:实际上,我创建了以下测试用例:

$ cat /tmp/test1.sh /tmp/test2.sh
#!/bin/sh

/tmp/test2.sh &
sleep 5

#!/bin/sh

echo "test"

kill -HUP $$

当我运行nohup /tmp/test1.sh输出(存储在 nohup.out 中)时:

test

这意味着kill -HUP $$被 nohup 拦截了。

相关内容