zoukankan      html  css  js  c++  java
  • su 和su -的区别

    本文转载自:http://oldboy.blog.51cto.com/2561410/1053606

    老男孩Linux培训新班刚开始,老男孩发现群里就在讨论这个susu -的区别,有的同学们说,直接su就可以,有的说必须要su -。有的同学直接发问,到底susu -有什么区别?

    1、授之以“鱼”的答案

    6.6.1.3 su命令实例

    当不加任何参数执行su命令时,表示要切换到root用户,但这样执行,会遇到一些问题。因为虽然是切换到root用户了,但并没有改变为root用户登录环境,用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,shell类型等。比较规范的操作方法是”su -“。见下面的实例。

    实例1:由普通用户oldboy切换到root用户

    [oldboy@oldboy ~]$ whoami  #→确认当前用户为oldboy
    
    oldboy
    
    [oldboy@oldboy ~]$ su   #→不加用户就表示切到root用户。当然也可以使用su root。
    
    Password:          #→这里当然就是root用户的密码了。
    
    [root@oldboy oldboy]# env
    
    HOSTNAME=oldboy
    
    USER=oldboy
    
    MAIL=/var/spool/mail/oldboy
    
    PWD=/home/oldboy
    
    HOME=/root
    
    LOGNAME=oldboy

    ...省略部分无关内容...

    #→细心的读者应该已经看到了,如果使用su而不加上“-”这个参数,那么,切换前的用户的相关信息还会存在,这会引起很多麻烦,甚至会出现意想不到的结果。因此,切换用户时,最好是 “su - 用户名”。这是生产场景中标准的切换用户的操作方法。

    [root@oldboy oldboy]# exit  #→退出当前用户,这个命令也可以用ctrl+d快捷键命令替代。
    
    [oldboy@oldboy ~]$ su -    #→带上“-”参数做切换,也可用su - root命令。这是生产场景中的标准操作方法。
    
    Password:
    
    [root@oldboy ~]# env|egrep "USER|MAIL|PWD|LOGNAME"  #→切换后的环境变量信息结果。使用egrep过滤包含想查看的字符串的行。
    
    USER=root
    
    MAIL=/var/spool/mail/root
    
    PWD=/root
    
    LOGNAME=root

    #→这次和上次就不同了,所有的环境变量信息都切换到了root下。因此,请大家在切换用户时一定要加上“su - 用户名”,这里提醒下,不光是切到root呦,切换到其他用户也是一样,呵呵。

    su命令总结:

    1)普通用户切换到root用户,可使用su -或su - root。必须输入root密码才能完成切换。

    2)root用户切换到普通用户,可使用“su - 普通用户名”的写法。不需要输入任何密码就能完成切换。切换到普通用户后,在执行一些命令如ifconfig时,可能会遭遇到环境变量PATH路径问题而找不到某些系统命令(一般是/sbin,/usr/sbin等下面的命令),这时就需要将普通用户的PATH,配置成root的PATH内容,前面的文章已讲解过这个配置方法,不清楚的读者,可以翻阅下。

    3)如果仅希望在某用户下执行命令,而不直接切换到该用户下操作,可以使用 su - 用户名 -c "命令"的方式。

     

    以上是CentOS系统的

    下面是我ubuntu 系统的,有一些区别:

    xiaorui@xiaorui:~$ whoami
    xiaorui
    xiaorui@xiaorui:~$ su root
    密码: 
    root@xiaorui:/home/xiaorui# env |egrep "USER|MAIL|PWD|LOGNAME"
    USER=root
    MAIL=/var/mail/root
    PWD=/home/xiaorui
    LOGNAME=root
    xiaorui@xiaorui:~$ whoami
    xiaorui
    xiaorui@xiaorui:~$ su - root
    密码: 
    root@xiaorui:~# env |egrep "USER|MAIL|PWD|LOGNAME"
    USER=root
    MAIL=/var/mail/root
    PWD=/root
    LOGNAME=root



  • 相关阅读:
    图像处理、分析与机器视觉读书笔记-------第二章图像及其表达与性质
    win7下VS2015+opencv3.1.0配置
    简单使用普通用户启动tomcat
    漏洞扫描,linux配置规范处理
    linux防火墙开放和禁用指定端口
    CentOS自带定时任务crontab
    linux之dos2unix命令
    CentOS7时间设置问题
    shell去除换行和空格
    log4j日志输出级别高低
  • 原文地址:https://www.cnblogs.com/migongci0412/p/4971079.html
Copyright © 2011-2022 走看看