Linux 问题请教

2017-06-29 11:08:22 +08:00
 xiaomacai

sudo su - username 跟 sudo su username 有什么不同的地方,之前使用后一种进入用户后会存在部分环境变量未加载的情况,原因是什么?

2002 次点击
所在节点    Linux
5 条回复
Beavan
2017-06-29 11:14:14 +08:00
没有- 虽然切换了用户,但一些环境变量还是用的切换用户的环境变量,不属于完整切换。
加上- 完整切换,对应的环境变量也切换为对应用户身边。
besto
2017-06-29 11:19:59 +08:00
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.
xiaomacai
2017-06-29 11:28:48 +08:00
@besto 恩恩,貌似不同 linux 版本里面说明是不太一样的
zent00
2017-06-29 11:50:58 +08:00
一句话简单概括,login shell 和 non-login shell 的差异,前者会切换用户身份并加载目标用户的环境变量,后者只是切换身份到目标用户。
GGGG430
2017-06-29 14:23:18 +08:00
google: suid,sgid

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/371865

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX