zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    eclipse 智能提示
    android 入门 004 (同一个方法,点击实现不同的效果)
    android 入门 003 (点击事件)
    android 入门 002 (拨打电话,发送短信)
    android 入门 001 (界面布局)
    Eclipse智能提示及快捷键
    转 Android学习笔记: 学习过程中碰到的一些问题及解决方法
    flash视频器播放器代码
    asp.net MVC webservice 报次错解决方法
    快递单号规则
  • 原文地址:https://www.cnblogs.com/asheng2016/p/9350800.html
Copyright © 2011-2022 走看看