The difference between su and su-


 

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

相关文章
相关标签/搜索