[TOC]
sudo or gosu
参考文献
官方:Docker 官方文档的 Dockerfile 部分,有一节讲的是 ENTRYPOINT
,提到了如果在启动脚本中需要指定运行命令的用户,建议用gosu
代替sudo
。
-
gosu 避免了 strange and often annoying TTY and signal-forwarding behavior
-
sudo 缺点(至少以下两点)
-
sudo 会作为被授权的命令的父进程一直存在,直到该命令退出。
-
sudo 模式下的 HOME 环境变量仍是用 sudo 者原来的值。
1 2 3 4 5 6
~ sudo ps -o pid,ppid,cmd PID PPID CMD 12599 4281 sudo ps -o pid,ppid,cmd 12600 12599 ps -o pid,ppid,cmd ~ sudo env | grep HOME HOME=/home/lzx
-
-
sudo and su sudo 跟 su 不同,在于 sudo 是对使用者鉴权,而 su 是对目标权限进行鉴权。假定你是 sudoer,运行 sudo时你要输入自己的密码,也即证明自己有扮演的权限;而运行 su 时,你要输入的是要扮演的用户的密码,也即证明你有扮演的那个用户的权限。所以 sudo 会认为,那你使用 sudo 只是想临时使用某一身份。