# ubuntu切换用户su命令

在 Ubuntu 中切换用户有多种方法,我来为你详细介绍:

# 基本语法

su [选项] [用户名]
1
选项 说明
--l--login 完全切换,模拟用户登录
-c 执行单条命令后返回
-s 指定 shell
-m 保持当前环境变量
  1. 基本功能

su 允许当前用户临时切换到另一个用户身份,以便执行需要该用户权限的操作。

  1. 工作原理
  • 执行 su 时会提示输入目标用户的密码
  • 验证成功后,获得目标用户的权限
  • 使用 exitCtrl+D 返回原用户

# su实际应用场景

场景1:系统管理

# 普通用户需要安装软件
su -
apt install nginx
exit
1
2
3
4

场景2:多用户开发

# 开发者 gun 需要检查同事 john 的项目
su - john
cd /projects/john-project
ls -la
exit
1
2
3
4
5

场景3:服务管理

# 管理 PostgreSQL 数据库
su - postgres
psql
\q
exit
1
2
3
4
5

# susudo 的区别

特性 su sudo
需要密码 目标用户的密码 当前用户的密码
权限范围 获得完整用户权限 按配置授权特定命令
环境变量 可切换完整环境 通常保持当前环境
审计跟踪 简单 详细的日志记录

# su 命令(Switch User)

切换到其他用户

# 切换到指定用户(不改变环境变量)
su username

# 完全切换(推荐)- 模拟用户登录
su - username
su -l username
1
2
3
4
5
6
# 切换到 john 用户
su - john

# 切换到 root 用户
su -
su - root
1
2
3
4
5
6

# sudo 命令

# 以其他用户身份执行单条命令
sudo -u username command

# 示例:以 john 用户创建文件
sudo -u john touch /home/john/test.txt
1
2
3
4
5

切换到其他用户的 shell

# 切换到其他用户的 shell
sudo -u username -s
sudo -i -u username
1
2
3

# login 命令

# 重新登录为其他用户
login username
1
2

普通用户切换

# 当前用户是 gun,要切换到 john
su - john
# 输入 john 的密码

# 切换回 gun
exit
# 或者
logout
1
2
3
4
5
6
7
8

切换到 root 用户

# 方法1:使用 su
su -
# 输入 root 密码

# 方法2:使用 sudo(如果当前用户在 sudo 组)
sudo -i
sudo su -
# 输入当前用户密码
1
2
3
4
5
6
7
8

临时以其他用户执行命令

# 以 postgres 用户执行命令
sudo -u postgres psql

# 以 www-data 用户查看文件
sudo -u www-data ls -la /var/www/html
1
2
3
4
5

# 查看用户信息

检查当前用户

# 查看当前用户名
whoami
# 查看详细信息
id
# 查看登录用户
who
w
1
2
3
4
5
6
7

检查用户切换历史

# 查看当前会话信息
echo $USER
echo $HOME
pwd
1
2
3
4

# su历史背景

  • su 起源于 1970 年代的 Unix 系统
  • 是 multi-user 系统的基础功能
  • 现代系统中常与 sudo 配合使用

# 总结

su 的核心作用:

  • 🔄 临时切换用户身份
  • 🔐 获得目标用户的全部权限
  • 🏠 su - 提供完整的用户环境

使用建议:

  • 日常使用 su - 获得完整环境
  • 管理任务结合使用 susudo
  • 操作完成后及时 exit

这就是 su 命令的完整说明!它是 Linux 系统管理的基础工具之一。

Last Updated: 10/15/2025, 9:29:05 AM