Time:2018/3/12html
Author:xibeiyelangshell
Title:The difference between su and su-安全
1.su : run a command with substitute user and group ID.bash
2.su - : run a command with substitute user and group ID and change username path.htm
Example:blog
eg1.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.进程
eg2.su root is the same as su like you open an interactive shell in root name,
then only .bashrc will be sourced.it
说明:登录
su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;然后者连用户和Shell环境一块儿切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户之后,pwd一下,发现工做目录仍然是普通用户的工做目录;而用su -命令切换之后,工做目录变成root的工做目录了。用echo $PATH命令看一下su和su -之后的环境变量有何不一样。以此类推,要从当前用户切换到其它用户也同样,应该使用su -命令。变量
语法:
$ su [user_name]
su 命令能够用来交互地更改你的用户ID和组ID。 Su是switch user 或set user id的一个缩写。这个命令让你开启一个子进程,成为新的用户 ID 和赋予你存取与这个用户ID 关联全部文件的存取权限。所以,出于安全的考虑,你在实际转换身份时,会被要求输入这个用户账号的密码。
若是没有参数,su 命令将你转换为 root(系统管理员)。root 账号有时也被称为超级用户,由于这个用户能够存取系统中的任何文件。也正是这个缘由,许多人将su命令当作是 supper-user(超级用户)的一个缩写。固然,你必需要提供 root密码。 想要回到你原先的用户身份,不要再使用 su 命令,你只须要使用 exit命令退出你使用su命令而生成的新的对话进程。
$ su – username
一些配置文件是为你的对话线索而设立的。当你使用命令 su username时,你的对话特征和你原始的登陆身份同样。若是你想要你的对话进程拥有转换后的用户 ID一致的特征,你要使用短斜杠: su – username。
小结:
1)超级用户root切换到普通用户无需密码
2)普通用户切换到root帐号须要root密码
3)普通用户之间切换须要对应的帐号密码
参考:https://www.cnblogs.com/Nice-Boy/p/6137955.html