• su 与 su


    susu -都是用来切换用户的命令,简单说它们之间的区别就是:su -切换的干净彻底,而su
    切换用户却拖泥带水。

    su

    su username,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。

    su -

    su - username,切换到指定用户,当前目录即刻切换成指定用户的家目录,即~环境变量
    即刻切换到指定目录的环境变量。

    测试环境

    测试环境是CentOS6.9_64位,系统中有两个用户oldboy和root

    oldboy的环境变量和家目录如下

    [oldboy@as4k ~]$ echo ~
    /home/oldboy
    [oldboy@as4k ~]$ echo $PATH
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
    [oldboy@as4k ~]$ 
    

    root用户的环境变量和家目录如下

    [root@as4k ~]# echo ~
    /root
    [root@as4k ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    [root@as4k ~]# 
    

    测试效果

    root -> oldboy (su -)

    [root@as4k ~]# pwd && echo $PATH
    /root
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    [root@as4k ~]# su - oldboy
    [oldboy@as4k ~]$ pwd && echo $PATH
    /home/oldboy
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
    

    oldboy -> root (su -)

    [oldboy@as4k ~]$ pwd && echo $PATH
    /home/oldboy
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
    [oldboy@as4k ~]$ su - root
    Password: 
    [root@as4k ~]# pwd && echo $PATH
    /root
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    

    root -> oldboy (su)

    [root@as4k ~]# pwd && echo $PATH
    /root
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    [root@as4k ~]# su oldboy
    [oldboy@as4k /root]$ pwd && echo $PATH
    /root
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    

    oldboy -> root (su)

    [oldboy@as4k ~]$ pwd && echo $PATH
    /home/oldboy
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
    [oldboy@as4k ~]$ su root
    Password: 
    [root@as4k /home/oldboy]# pwd && echo $PATH
    /home/oldboy
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
    

    结论

    切换用户尽量使用su -,干净彻底,符合人类认知。

    问题: 一不小心使用su切换了用户,傻傻分不清自己到底用的是哪个环境,怎么办?

    解决: 使用su - username 再切换一次,即使自己已经是oldboy用户,还是可以su - oldboy
    再切换一次,以达到更改操作环境的目的。

    [oldboy@as4k ~]$ pwd && echo $PATH
    /home/oldboy
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
    [oldboy@as4k ~]$ su root
    Password: 
    [root@as4k /home/oldboy]# pwd && echo $PATH
    /home/oldboy    # what ? 我的环境乱了
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
    [root@as4k /home/oldboy]# su - root
    [root@as4k ~]# pwd && echo $PATH
    /root   # ok 回到了熟悉的环境
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  • 相关阅读:
    SPOJ GSS1 ~ 8解题报告 【完整版】
    题解 UVA1659 【帮助小罗拉 Help Little Laura】
    题解 UVA753 【UNIX插头 A Plug for UNIX】
    题解 P3740 【[HAOI2014]贴海报】
    对拍程序
    dut新生大礼包3
    1240C
    DISCO Presents Discovery Channel Code Contest 2020 Qual 题解
    1254C
    1285E
  • 原文地址:https://www.cnblogs.com/asheng2016/p/9350800.html
Copyright © 2020-2023  润新知