zoukankan      html  css  js  c++  java
  • Linux中su和su -区别,别再傻傻分不清

    写在前面

      如果你不清楚su和su -切换用户的区别,你一定会遇到在使用su切换用户执行命令出现报错"command not found"感到惊讶。分明之前这个指令执行的好好的,为什么现在就报错了呢?关键原因就在于你不清楚su和su -命令使用的区别。

    su与su -区别

      su和su - 命令使用最主要的区别主要是涉及login-shell和non-login shell的变量读取方法,两种不同的变量读取方法导致执行用户切换后HOME/PATH/USER/MAIL等变量不同。

      下面我们通过实例再具体展开讲述这两者间的区别。

      su切换用户

      划重点:

      (1)PATH变量没有切换成新用户root,还是dmtsai用户的。su切换新用户后的PATH变量不包含/sbin、/usr/sbin等目录。

      (2)PWD目录没有发生切换。

      (3)用户身份发生切换,切换成root。但是USER变量还是切换前用户。

      su - 切换用户

       划重点:

      (1)PATH变量切换成新用户root,包含/sbin、/usr/sbin等目录。

      (2)PWD目录切换成root用户家目录。

      (3)用户身份发生切换,且USER变量为root。

    回归问题 

      现在知道为什么su切换用户后执行命令依然会出现报错"command not found"的原因了吧。linux执行命令会通过PATH变量中的目录依次查找,当路径中不包含/sbin、/usr/sbin等目录时自然就找不到。

    总结

      如果想要完整的切换到新用户环境,必须使用su -切换 ,这样才会连同PATH/USER/MAIL 等变量都转成新用户的环境。也就不会出现意料之外的事情了。

  • 相关阅读:
    CH02 FPGA设计Verilog基础笔记(二)
    同一个按键短按与长按的区别触发
    树莓派 -- 输入设备驱动 (key) 续2: 转载 Setting up a GPIO-Button “keyboard” on a Raspberry Pi
    树莓派 -- 输入设备驱动 (key) 续1
    树莓派 -- 输入设备驱动 (key)
    树莓派 -- 按键 (key)使用BCM2835 gpio library
    leds-gpio driver 续1
    leds-gpio driver
    使用CSDN-markdown编辑器
    树莓派
  • 原文地址:https://www.cnblogs.com/linyfeng/p/13511945.html
Copyright © 2011-2022 走看看