初学LINUX,使用logout登录注销,
使用
su root
切换到root用户下发现
bash: logout: 不是登录shell: 使用 `exit'
但是使用
su - root
就正常

查资料:发现是su root 与 su - root有着本质的区别
su - root is the same as su -
just like login as root, then the shell is login shell,
which mean it will expericene a login process,
usually .bash_profile and .bashrc will be sourced
su root is the same as su
like you open an interactive shell in root name,
then only .bashrc will be sourced.
su 后面不加用户是默认切到 root,不改变当前变量(并没有切换登录用户
su - 是改变为切换到用户的变量
su只能获得root的执行权限,不能获得环境变量
su -是切换到root并获得root的环境变量及执行权限
本文介绍了在Linux系统中su与su-命令的区别。su-root等同于su-,会经历完整的登录过程,加载.bash_profile和.bashrc文件;而su root仅加载.bashrc文件,不会改变当前环境变量。su命令可以获取目标用户的执行权限,但su-能完全切换到该用户的环境。

2721

被折叠的 条评论
为什么被折叠?



