编辑
2023-11-01
TechNotes
00

目录

1. su(Substitute User)
用法:
区别:
示例:
2. sudo(Super User Do)
用法:
区别:
示例:
3. login
用法:
区别:
4. ssh(Secure Shell)
用法:
区别:
总结:

在 Linux 系统中,切换用户的方式有多种,不同方法适用于不同的场景。常见的切换用户的方式及其区别如下:

1. su(Substitute User)

su 命令用于切换到其他用户,默认为切换到 root 用户。

用法:

  • su -:切换到 root 用户,并加载 root 用户的环境变量。
  • su username:切换到指定用户,但不加载该用户的环境变量。
  • su - username:切换到指定用户,并加载该用户的环境变量。

区别:

  • su -su - username 会像重新登录该用户一样,加载该用户的环境变量、路径等。
  • su username 只切换用户,不会加载该用户的环境变量。
  • 切换用户后仍然保持在当前的 Shell 中。

示例:

bash
su - john # 切换到用户 john,加载其环境 su john # 切换到用户 john,但不加载其环境

2. sudo(Super User Do)

sudo 命令用于以其他用户身份执行单个命令,默认执行 root 用户权限的命令。

用法:

  • sudo command:以 root 用户权限执行单个命令。
  • sudo -u username command:以指定用户的身份执行单个命令。

区别:

  • sudo 执行后不会改变当前用户的身份,只是暂时使用 root 或其他用户的权限执行该命令。
  • 需要配置 /etc/sudoers 文件,只有被允许的用户才能使用 sudo

示例:

bash
sudo ls /root # 使用 root 权限查看 /root 目录 sudo -u john ls /home/john # 使用用户 john 的身份执行命令

3. login

login 命令用于在终端会话中重新登录为不同的用户。

用法:

bash
login username

区别:

  • login 会终止当前的终端会话,并重新登录为指定用户。
  • susudo 不同,login 是彻底切换到新用户,且必须输入密码重新登录。

4. ssh(Secure Shell)

ssh 命令用于远程登录到其他用户的系统账户。

用法:

bash
ssh username@hostname

区别:

  • ssh 主要用于远程登录,不仅切换用户,还登录到其他机器上。
  • 不适用于本地系统切换用户,而是用于连接远程系统。

总结:

  • su:用于切换用户,su - 还会加载用户环境。
  • sudo:用于以其他用户身份执行单个命令,不切换当前用户。
  • login:用于重新登录为指定用户,会话会终止。
  • ssh:用于远程登录到其他系统的用户账户。

根据不同的需求,可以选择适合的命令来切换用户。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:GYC

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!