Linux下su命令用法

原创 2015年07月10日 13:20:49

在学习linux输入命令时,发现su和su - 是有区别的,于是查找了su命令的所有用法,学习一下。

SU:( Switch user切换用户),可让一个普通用户切换为超级用户或其他用户,并可临时拥有所切换用户的权限,切换时需输入欲切换用户的密码;也可以让超级用户切换为普通用户,临时以低权限身份处理事务,切换时无需输入欲切换用户的密码。

命令使用方式:

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 

直接解释参数的意思不太直观,下面用实例来说明吧。

1.切换用户

切换包含从一般用户到root用户,从root用户到一般账户。

从一般用户到root用户:su root或者 su - root,此时需要输入root的密码。

注意中间有个“-”表示是否切换到root用户的主目录下。

从root用户到一般用户:su name或者su - name,name为一般用户名,此时不需要密码。

注意中间有个“-”表示是否切换到name用户的主目录下。

从一般用户到一般用户su name或者su - name,此时需要输入name用户的密码。

注意中间有个“-”表示是否切换到name用户的主目录下。


上图,首先登录的时名为zt的一般用户,先切换到root用户,需要密码,进去之后,#号前面的目录为/home/zt,是用户zt的主目录,因此目录没有切换。然后,从root账户切换到zt用户,发现,$前目录为~,为zt的目录,也没有切换。

然后使用su - root和su - zt切换,此时目录都变成了当前用户的主目录。

但除了这一点,这两个命令还有区别,在于环境变量是否切换了。此链接:http://www.ha97.com/4001.html有如下的解释:

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


2.-c属性实例

输入:su -c ls root 

变更帐号为 root 并在执行 ls 指令后退出变回原使用者。

3.su和sudo的区别 

由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和 管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。 
通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su; 

sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux下su命令的实现

Linux中的用户切换su. 将su可执行文件所属者设置为root的,则执行su时候则拥有了root的权限 切换到root用户下,chown root su 和chmod u+s su来改变su文件...

Linux下cut命令用法详解.doc

  • 2015-12-21 21:12
  • 446KB
  • 下载

linux su命令参数及用法详解--linux切换用户命令

建议大家切换用户的时候 使用  su -  root  这样,否则可能发现某些命令执行不了 关于su 、su - 及 sudo的区别 请往下看    1.命令作用  su的作用是变更为...

linux su命令参数及用法详解(linux切换用户命令)

linux su命令参数及用法详解(linux切换用户命令) 来源:互联网 作者:佚名 时间:07-21 12:12:39 【大 中 小】 点评:su的作用是变更为其它...

linux su命令参数及用法详解--linux切换用户命令

建议大家切换用户的时候 使用  su -  root  这样,否则可能发现某些命令执行不了 关于su 、su - 及 sudo的区别 请往下看   1.命令作用 su的作用是变更为其它使用者的...
  • jamex
  • jamex
  • 2012-05-07 17:15
  • 360

linux su命令参数及用法详解--linux切换用户命令

最近发现用“su root" 命令进入到root用户时,一些命令如shutdown、init、ifconfig等等不能被执行,上网一查发现用“su -root”竟然可以,看到下文之后,才明白了。 ...

Linux如何查看系统当前登录用户信息,linux su命令参数及用法详解(linux切换用户命令)

Linux如何查看系统当前登录用户信息,linux su命令参数及用法详解(linux切换用户命令)

Linux下su与su -命令的本质区别

原PO地址:http://www.ha97.com/4001.html 本人以前一直习惯直接使用root,很少使用su,前几天才发现su与su -命令是有着本质区别的! 大部分Linux发...

Linux下su与su -命令的本质区别

大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行,这就需要从当前用户切换到root用户。Linux中切换用户的命令是su或su -。前天我在使用us...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)