linux中 su - 的含义,及其作用是什么?

2024-11-29 10:07:49
推荐回答(5个)
回答1:

su并不是真正地切换用户,它只是改变身份的一个命令而已,你可以把它当做一种嵌套,当你以root身份执行su yph命令时,下面的命令便会以yph用户的身份执行,但是值得注意的一点是当前的环境变量、工作目录等全都没有改变,也就是说仍在root使用的环境变量中,此时执行pwd查看当前工作目录应该会输出“/root”,当再以yph身份执行su - root命令后,你便又是以root身份执行命令了,可是此时的情况应该是:
root环境/yph身份/root身份
即当你输入logout时便会返回到:“/root环境/ypt身份”下,在此环境再输入logout则可能会显示“bash: logout: not login shell: use `exit'”,即当前yph用户所用的shell中没有logout,因为logout命令需要以root身份执行,此时正确的做法是执行exit命令,便会到退出到root下,即为刚进入root用户时的状态

回答2:

su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。如图:

回答3:

su(switch user)是切换用户的命令。
例如现在login的用户是A,但是用户想使用另一个用户身份来执行程序,这时候可以使用
su B或者 su - B
su - 与 su 的区别是,使用su - 时,用户的切换是完全切换,就是A切换到B的时候,会以B用户重新以登录流程执行相应的登录的脚本,读取相应用户设置的环境变量;如果是使用su 切换时,仅切换用户。
如果不接用户光使用su或者su - 时,默认将切换到root用户。

回答4:

su命令是指。在普通用户登录的情况下,将权限提升为root用户或具有管理员权限的用户。
具体使用语法是:
su 用户名
如果用户名为空,默认为root用户。
它还有其他参数,你可以man su看看。

回答5:

su root 当前用户使用ROOT用户的权限来执行操作
su - root 切换到root用户