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
  • 相关阅读:
    去除 CSDN “官方免费去广告 + 万能工具”
    github 搜索技巧常用
    Python 使用 __doc__ 查看文档
    油猴脚本编写自己的脚本来去除知乎 "我们检测到你可能使用了 AdBlock 或 Adblock Plus"
    Unity 中的 C# Instantiate() 方法解析
    《流畅的 Python 》第 2 章笔记
    html 中 a 标签中 href 的路径相关问题
    VScode 复制代码到博客园编辑器自动带上代码标签问题
    Vue在Ubuntu上的部署
    在ubuntu上编译方式安装nginx
  • 原文地址:https://www.cnblogs.com/asheng2016/p/9350800.html
Copyright © 2011-2022 走看看