• 技术文章 >运维 >linux运维

    linux su密码是什么意思

    青灯夜游青灯夜游2023-03-20 10:26:16原创453

    su的密码就是root根用户的密码;安装Linux或者Unix操作系统的时候,会有提示让用户输入root的密码,这也是执行“sudo su”命令以后出现让用户输入的密码。su全称“switch user”,可让用户暂时变更登入的身份,除root外变更时须输入所要变更的用户帐号与密码。

    本教程操作环境:linux7.3系统、Dell G3电脑。

    su密码是什么意思

    su的密码就是root根用户的密码呢,安装Linux或者Unix操作系统的时候,会有提示让您输入root的密码的,这就是执行sudo su命令以后出现让您输入密码的密码,注意这个密码是不会显示星号或者其他符号的,一直是空白的,输入完成以后直接回车就好。

    su命令介绍

    su(英文全拼:switch user)。在Linux中 su 命令可让用户暂时变更登入的身份,除 root 外变更时须输入所要变更的用户帐号与密码。

    使用权限:所有使用者。

    功能:变更用户身份,若不指定用户帐号,则预设变更为root。

    语法

    su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

    参数说明:

    常用范例:

    例一:变更帐号为 root 并在执行 ls 指令后退出变回原使用者

    命令:su -c ls root

      变更帐号为 root 并在执行 ls 指令后退出变回原使用者。

    [root@localhost ~]# su -c ls root
    公共  视频  文档  音乐	anaconda-ks.cfg
    模板  图片  下载  桌面	initial-setup-ks.cfg

    例二:切换用户

    命令: su root

      testuser切换成root,相当于用户改成root但是操作的是testuser环境
      小权限切换大权限要求输入密码;大权限切换小权限不需要输入密码。
      切换用户,只能获得用户的执行权限,不能获得环境变量。

    [testuser@localhost ~]$ whoami //显示当前用户
    testuser
    [testuser@localhost ~]$ pwd //显示当前目录
    /home/testuser
    [testuser@localhost ~]$ su root //切换到root用户
    密码:
    [root@localhost testuser]# whoami
    root
    [root@localhost testuser]# pwd
    /home/testuser

    例三:切换用户,改变环境变量

    命令:su - root

      testuser切换成root,相当于用户改成root,操作的是root环境。即变更帐号为 root 并改变工作目录至 root 的家目录。
      切换到用户并获得该用户的环境变量及执行权限。

    [testuser@localhost ~]$ whoami
    testuser
    [testuser@localhost ~]$ pwd
    /home/testuser
    [testuser@localhost ~]$ su - root
    密码:
    [root@localhost ~]# whoami
    root
    [root@localhost ~]# pwd
    /root

    su 和 su - 的区别

    注意,使用 su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。我们知道,环境变量是用来定义操作系统环境的,因此如果系统环境没有随用户身份切换,很多命令无法正确执行。

    举个例子,普通用户 lamp 通过 su 命令切换成 root 用户,但没有使用 - 选项,这样情况下,虽然看似是 root 用户,但系统中的 $PATH 环境变量依然是 lamp 的(而不是 root 的),因此当前工作环境中,并不包含 /sbin、/usr/sbin等超级用户命令的保存路径,这就导致很多管理员命令根本无法使用。不仅如此,当 root 用户接受邮件时,会发现收到的是 lamp 用户的邮件,因为环境变量 $MAIL 也没有切换。

    初学者可以这样理解它们之间的区别,即有 - 选项,切换用户身份更彻底;反之,只切换了一部分,这会导致某些命令运行出现问题或错误(例如无法使用 service 命令)。

    通过下面这个例子,可直观的看到 su 和 su - 的区别:

    [lamp@localhost ~]$ whoami
    lamp
    #查询用户身份,我是lamp
    [lamp@localhost ~]$ su root
    密码:
    <-输入root密码
    #切换到root,但是没有切换环境变量。注意:普通用户切换到root需要密码
    [root@localhost ~]# env | grep lamp
    #查看环境变量,提取包含lamp的行
    USER=lamp
    #用户名还是lamp,而不是root
    PATH=/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/lamp/bin
    #命令査找的路径不包含超级用户路径
    MAIL=/var/spool/mail/lamp
    PWD=/home/lamp
    LOGNAME=lamp
    #邮箱、主目录、目前用户名还是lamp

    可以看到,在不使用 su - 的情况下,虽然用户身份成功切换,但环境变量依旧用的是原用户的,切换并不完整。

    相关推荐:《Linux视频教程

    以上就是linux su密码是什么意思的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:linux
    上一篇:linux硬盘挂载是什么意思 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • linux yum源是什么• Kali linux能做什么• linux 中断号是什么意思• linux怎么查看目录是否为空• linux可将用户从组中删除吗• linux硬盘挂载是什么意思
    1/1

    PHP中文网