sudo su - username 跟 sudo su username 有什么不同的地方,之前使用后一种进入用户后会存在部分环境变量未加载的情况,原因是什么?
没有- 虽然切换了用户,但一些环境变量还是用的切换用户的环境变量,不属于完整切换。
加上- 完整切换,对应的环境变量也切换为对应用户身边。
man su:
-, -l, --login
Provide an environment similar to what the user would expect had the user logged in directly.
When - is used, it must be specified before any username. For portability it is recommended to use it as last option,
before any username. The other forms (-l and --login) do not have this restriction.
恩恩,貌似不同 linux 版本里面说明是不太一样的
一句话简单概括,login shell 和 non-login shell 的差异,前者会切换用户身份并加载目标用户的环境变量,后者只是切换身份到目标用户。
google: suid,sgid