• 文章目录linux中sudo su 与 sudo su - 区别测试 linux中sudo su 与 sudo su - 区别 sudo su 切换root身份,不携带当前用户环境变量。 sudo su - 切换root身份,携带当前用户环境变量。 测试 当前用户PATH环境变量 ...

    linux中sudo su 与 sudo su - 区别

    • sudo su 切换root身份,不携带当前用户环境变量。
    • sudo su - 切换root身份,携带当前用户环境变量。

    测试

    当前用户PATH环境变量

    图片.png

    使用 sudo su 切换root身份。没有携带当前用户的环境变量。

    图片.png

    使用 sudo su - 切换root身份。并携带当前用户的环境变量。

    图片.png

    展开全文
  • susu -都是用来切换用户的命令,简单说它们之间的区别就是:su -切换的干净彻底,而su 切换用户却拖泥带水。 su su username,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。 su -...

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

    su

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

    su -

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

    测试环境

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

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

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

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

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

    测试效果

    root -> linuxidc (su -)

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

    oldboy -> root (su -)

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

    root -> linuxidc (su)

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

    linuxidc -> root (su)

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

    结论

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

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

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

    [linuxidc@linuxidc~]$ pwd && echo $PATH
    /home/linuxidc
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linuxidc/bin
    [oldboy@linuxidc~]$ su root
    Password:
    [root@linuxidc/home/linuxidc]# pwd && echo $PATH
    /home/linuxidc    # what ? 我的环境乱了
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linuxidc/bin
    [root@linuxidc/home/linuxidc]# su - root
    [root@linuxidc~]# pwd && echo $PATH
    /root  # ok 回到了熟悉的环境
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    https://www.linuxidc.com/Linux/2018-08/153829.htm

    展开全文
  • Linuxsusu - 的区别 一、区别 Linux 中切换用户的命令是 susu - 。 su命令 su - 命令最大的本质区别就是: 前者只切换了root身份 , 但是shell环境仍然是普通用户的shell , 而后者是连用户shell...

    Linux 中su 与su - 的区别

    一、区别

    1. Linux 中切换用户的命令是 su 或 su - 。
    2. su命令和 su - 命令最大的本质区别就是: 前者只切换了root身份 , 但是shell环境仍然是普通用户的shell , 而后者是连用户和shell 环境一起切换成了root 身份了 , 只有切换了shell环境才不会出现PATH环境变量错误 。 su切换成root用户之后 pwd 一下 , 发现自己的工作目录仍然是普通用户的工作目录 ;而用su - 命令切换后 工作目录也变成了root的工作目录 , 使用echo $PATH 命令看一下su 和su - 的环境变量有何不同 。 以此类推 , 要从当前用户切换到其他用户应该使用su - 命令 。

    二、 su 命令

    1. su命令 的作用是变更为其他使用者的身份 , 需要键入该使用者的密码(超级用户除外 )。
    2. 格式 su [选项] … [-] [USER [ARG] …]
    3. 主要参数
      1. -f –fast: 不必读启动文件(如: .csh .cshrc等) , 仅用于csh或cshrc两种shell 。
      2. -l –login : 加了这个参数之后 , 就似乎是重新登录为该使用者一样 , 大部分环境变量(例如: home 、 shell 、 USER 等)都是以该使用者为主 , 并且工作目录也会改变 , 假如没有指定USER , 缺省情况下是root 。
      3. -m , -p –preserve-environment : 执行su时不改变环境变量 。
      4. -c –commend: 变更账号为USER的使用者 , 并执行指令(commend) 后再变回原来的使用者 。
      5. USER : 与变更的使用者账号 , AGR 传入新的参数 。
    展开全文
  • eg: su - user1 su user2 # 第一行切换用户为user1,执行了下面的脚本: /etc/profile /etc/bashrc ~/.bash_profile ~/.bashrc # 第二行 不加 - 切换的话只执行两个文件: ...不同linux发行版文件名...

    eg:   

    su - user1

    su user2

    # 第一行切换用户为user1,执行了下面的脚本:

    /etc/profile

    /etc/bashrc

    ~/.bash_profile

    ~/.bashrc

    # 第二行 不加 - 切换的话只执行两个文件:

    /etc/bashrc

    ~/.bashrc

    ------------------------

    不同linux发行版文件名可能略有差异,建议使用加 - 执行,防止漏读某些环境变量

    退回之前用户: exit命令

    显示当前用户名:  echo $USER

     

    展开全文
  • Linux-su su -

    2016-10-23 21:48:39
    Linux中切换用户的命令是susu -。前天我在使用useradd这个命令时,才体会到这两者的本质区别。 我首先是用su命令切换到root身份的,但是运行useradd时,出现错误:bash: useradd: command not fou

    大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行,这就需要从当前用户切换到root用户。Linux中切换用户的命令是su或su -。前天我在使用useradd这个命令时,才体会到这两者的本质区别。
    我首先是用su命令切换到root身份的,但是运行useradd时,出现错误:bash: useradd: command not found。google了一下,原因是在这个用su命令切换过来的root用户上。


    su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。

    Linux就是这样,有时候配置文件多了或者少了一个空格,服务就运行不了。细节问题一定要注意,这样才能少走弯路!

    展开全文
  • linux su -c命令

    2019-01-14 21:30:55
    su [-fmp] [-c command] [-s shell] [–help] [–version] [-] [USER [ARG]] 3.参数说明 -f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。 -l , –login:加了这个参...
  • linux su -c 命令

    2019-09-23 14:30:14
    su -c命令的含义为: 变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。 总结: su命令使用方式为: su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 含义是: ...
  • su命令 语法: su(选项)(参数) 选项: -c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份; -f或——fast:适用于csh与tsch,使shell不用去读取启动文件; -l或...
  • su: 切换到root用户,但是并没有转到root用户home目录下,即没有改变用户的环境 1)su 后面不加用户是默认切到 root 2)su只能获得root的执行权限,不能获得环境变量su - :切换到root用户,并转到root用户的...
  • 在启动服务器ntpd服务时遇到一个问题 ...su命令和su -命令区别就是: su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PAT...
  • su是superuser的前面两字母。 su root=su ...su root和su一样:表示与root建立一个链接,通过root执行命令,其实就是进程的有效用户ID变成了root,unix校验进程的权限都是校验的有效用户ID,进程的...
  • 注意:su 还可以有带-的用法,不带-的区别: 1 su root(或su 其他账号):表示不切换环境变量到当前用户,仍然使用之前用户的环境变量。 2 su - root(或su - 其他账号):表示切换当前的环境变量到新用户环境变量...
  • su root su - root 有什么区别 su 默认切到 root susu - 的区别su 是不改变当前变量 su - 是切换到用户的变量 su只能获得root的执行权限,不能获得环境变量,而su - 是切换到root并获得root的环境变量及...
  • linuxsu 和su -的区别

    2015-08-06 11:14:47
    su和su -都可用作linux方面来切换用户,他们的不同的之处,在于su 切换到目标用户,只是切换了身份,环境变量切换过来 su -切换到目标用户,既切换了身份,又切换了环境变量这里是su的操作:[root@i-rixuvhm5 ~]# ...
  • su 和su-区别

    2018-11-01 16:37:16
    su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root...
  • su 和su -的区别

    2017-07-31 12:07:13
      我一直是习惯使用su username来切换用户的,而且并不知道su和su -有什么区别,一直以为是没啥区别的,但是在一个测试中,在测试的同事的指导下,他说你su - ××× 之后×××,那一刻突然福至心灵觉得可能二者...
1 2 3 4 5 ... 20
收藏数 142,054
精华内容 56,821
关键字:

-区别 linux su和su