插件窝 干货文章 linux切换用户命令有哪些

linux切换用户命令有哪些

用户 切换 密码 变量 150    来源:    2025-04-12

在 Linux 系统中,切换用户的常用命令如下,根据使用场景选择合适的方式:


1. su (Switch User)

  • 基本语法su [选项] [用户名]
  • 常用场景
    • su -su - root
      切换到 root 用户,并加载目标用户的环境变量(推荐方式)。
    • su username
      切换到指定用户,但不加载该用户的环境变量(保留原环境)。
  • 需要密码:需要输入目标用户的密码(若从普通用户切换到其他用户)。

    su -          # 切换到root,加载环境变量
    su - user1    # 切换到user1,加载其环境变量
    su user1      # 切换到user1,但环境变量不变
    

2. sudo (Superuser Do)

  • 基本语法sudo -u 用户名 命令
  • 常用场景
    • 以其他用户身份执行单条命令(无需完全切换用户)。
    • 普通用户通过 sudo 临时获得 root 权限(需配置 /etc/sudoers)。
  • 需要密码:输入当前用户的密码(若未配置免密码)。

    sudo -u user1 whoami   # 以user1身份执行whoami
    sudo su -              # 切换到root(等效于su -,但依赖sudo配置)
    

3. login 命令

  • 用于重新登录系统,可指定用户: bash login username # 需要root权限

4. SSH 远程切换

  • 若用户有远程登录权限: bash ssh username@localhost # 通过SSH本地登录切换

关键区别总结:

命令/场景 加载环境变量 需要目标用户密码 需要sudo权限 典型用途
su - username 完整切换到目标用户
su username 部分切换(不推荐)
sudo -u username ❌(当前用户密码) 临时以其他用户执行命令
sudo su - ❌(当前用户密码) 替代su -(需配置)

注意事项:

  1. 安全建议

    • 优先使用 sudo 而非直接共享 root 密码。
    • 避免频繁使用 su 切换到 root,推荐 sudo command 按需提权。
  2. 环境变量问题
    su - 会加载目标用户的 ~/.bashrc 等配置文件,而 su 不会。

  3. 权限配置

    • sudo 报错,需检查用户是否在 /etc/sudoers 中配置权限: bash visudo # 编辑配置(推荐命令)

根据需求选择合适的方式,平衡安全性与便利性。