linux中su与su命令的区别

不及物动词 其他 14

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    su和su -命令都是用于切换用户身份的Linux命令,但它们在使用中有一些区别。

    su命令是用于在当前shell中切换用户身份。例如,如果我们想以root用户的身份执行某个命令,我们可以使用su命令。在命令行中输入”su”后,系统会提示您输入目标用户的密码。输入正确的密码后,您将切换到目标用户的身份,并且可以执行相应的命令。执行完命令后,您可以使用”exit”命令或Ctrl+D来退出目标用户身份,返回到原用户身份。

    su -命令与su命令类似,也是用于切换用户身份。但与su命令不同的是,su -会以目标用户的身份启动一个新的shell会话。这意味着,您将进入一个全新的环境,包括目标用户的HOME目录、路径、环境变量等。这种方式下,您可以完全使用目标用户的配置和权限,就像登录到该用户账户一样。

    因此,su和su -命令在使用场景上有所不同。如果您只是需要临时切换用户身份执行一些命令,而不需要进入目标用户的环境,那么可以使用su命令。例如,如果想要以root用户身份重启系统,可以使用su命令临时切换到root用户,然后执行重启命令。

    但如果需要完全进入目标用户的环境,以获取目标用户的配置和权限,那么可以使用su -命令。例如,如果想要以某个普通用户的身份登录并操作该用户的文件,可以使用su -命令切换到该用户,然后进行操作。

    总结一下,su命令用于临时切换用户身份,在当前shell中执行命令,而su -命令用于完全切换用户身份,进入一个全新的shell会话。选择哪个命令取决于您的具体需求。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,`su`和`su -`都是用来切换到其他用户的命令,但它们之间有一些区别。下面是它们之间的五个主要区别:

    1. 环境变量:
    当使用`su`命令切换用户时,当前用户的环境变量不会被修改。也就是说,新用户会继承当前用户的环境变量。但是,当使用`su -`命令切换用户时,新用户会拥有自己的环境变量,而不会继承当前用户的环境变量。这对于需要保持环境变量的设置一致性非常有用。

    2. 工作目录:
    当使用`su`命令切换用户时,当前用户的工作目录不会改变。也就是说,新用户会继承当前用户的工作目录。但是,当使用`su -`命令切换用户时,新用户的工作目录会变为其默认工作目录。这对于需要在特定目录下执行操作的用户非常有用。

    3. 用户组:
    当使用`su`命令切换用户时,新用户将保留当前用户的用户组。也就是说,新用户在默认情况下将有相同的主要用户组。但是,当使用`su -`命令切换用户时,新用户的用户组将变为其默认用户组。这对于某些需要特定用户组权限的用户非常有用。

    4. 环境配置:
    当使用`su`命令切换用户时,不会重新读取新用户的配置文件,例如`.bashrc`或`.profile`。但是,当使用`su -`命令切换用户时,新用户的配置文件将会重新读取。这对于需要加载新用户配置文件的用户非常有用。

    5. 命令历史:
    当使用`su`命令切换用户时,命令历史将不会保存。也就是说,新用户将不会访问之前用户的命令历史记录。但是,当使用`su -`命令切换用户时,新用户将能够访问前一个用户的命令历史记录。这对于需要查找之前执行的命令的用户非常有用。

    总结起来,`su`切换用户时会保留原用户的环境变量、工作目录、用户组和命令历史记录,而`su -`则会创建一个全新的用户环境,包括环境变量、工作目录、用户组和命令历史记录。两个命令的选择取决于你的具体需求。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux中,`su`和`sudo`是两个常用的命令,用于切换用户身份或者以不同的权限执行命令。尽管它们的功能类似,但是在使用方式、操作流程和权限控制上存在一些区别。

    1. `su`命令:
    `su`是super user的简写,意为超级用户。它允许用户在已有的Shell环境中切换到另一个用户身份(默认为root用户),以执行相应的操作。

    使用格式:
    “`
    su [选项] [用户名]
    “`

    常用选项:
    – `-` 切换到指定用户的环境,即以切换后的用户完整的环境变量和工作目录登录
    – `-c <命令>` 执行完命令后退出
    – `-l` 或者 `-` 切换到指定用户的环境
    – `-s ` 使用指定的shell执行命令,而不是用户的默认shell
    – `–help` 显示帮助信息

    操作流程:
    1. 输入`su`命令,后面跟上要切换到的目标用户(如果不指定,默认为root用户)。
    2. 输入目标用户的密码。
    3. 成功切换到目标用户的身份,可以执行相应的操作。

    2. `sudo`命令:
    `sudo`是switch user and do命令的简写,意为切换用户并执行命令。它允许有权限的用户以另一个用户的身份执行命令,同时记录下命令的执行者。

    使用格式:
    “`
    sudo [选项] [命令]
    “`

    常用选项:
    – `-u <用户>` 以指定的用户身份执行命令
    – `-i` 以目标用户的环境执行命令
    – `-l` 列出当前用户可以执行的命令列表
    – `-v` 刷新sudo的授权,需要用户提供密码

    操作流程:
    1. 输入`sudo`命令,后面跟上要执行的命令。
    2. 首先会要求输入当前用户的密码。
    3. 如果密码正确,系统会判断当前用户是否具有执行该命令的权限。
    4. 如果有权限,会切换到目标用户(默认为root用户)的身份并执行命令。
    5. 命令执行完成后,系统会返回到当前用户的身份。

    总结:
    – `su`命令可以直接切换到指定用户,需要目标用户的密码,切换后的环境与目标用户一致。
    – `sudo`命令需要使用者的密码,执行命令前需要验证执行者是否有权限,不需要切换环境。
    – `su`命令一般用于临时切换身份,而`sudo`命令常用于在普通用户下以root身份执行特定命令。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部