主题
Linux用户和权限 - 认知root用户
课程介绍
接下来我们来了解Linux的用户和权限管理。Linux支持多用户,其中root用户拥有最高权限,可以执行任何操作。我们会学习用sudo -i命令切换到root用户,用sudo临时提升权限。注意:在Rocky Linux 9中,普通用户默认无法使用su命令切换到root,需要使用sudo -i来切换。这些知识很重要,因为后续学习文件权限和系统管理都会用到。
1. Linux的多用户管理模式
Linux系统采用多用户管理模式进行权限控制,这意味着系统中可以同时存在多个用户账户,每个账户拥有不同的权限级别。
主要特点
- 系统资源按用户分配权限
- 不同用户对文件和系统操作的权限不同
- 超级管理员拥有最高权限
- 普通用户权限受限,提高系统安全性
2. root超级管理员用户
root用户是Linux系统中拥有最高权限的账户,也被称为超级管理员。
主要特点
- 用户名固定为
root - 拥有系统的完全操作权限
- 可以执行任何命令和修改任何文件
- 不受系统权限限制
普通用户与root用户的区别
| 特性 | 普通用户 | root用户 |
|---|---|---|
| 权限范围 | 受限,仅在home目录内权限较高 | 完全权限,不受限制 |
| 系统修改 | 无法修改系统关键文件 | 可以修改任何系统文件 |
| 资源访问 | 受权限限制 | 可以访问所有系统资源 |
| 安全性 | 较高,操作风险低 | 较低,误操作可能导致系统损坏 |
实操演示
bash
# 普通用户在根目录创建文件夹(权限不足)
$ cd /
$ mkdir test
mkdir: cannot create directory 'test': Permission denied
# 切换到root用户后创建文件夹(成功)
$ sudo -i
Password: 123456
# mkdir test
# ls -l
...
drwxr-xr-x 2 root root 4096 Oct 15 14:30 test3. 用户切换命令 - sudo -i
在Rocky Linux 9中,官方更推荐大家使用sudo -i命令来切换到root用户。
命令语法
bash
sudo -i常用选项
| 选项 | 功能描述 |
|---|---|
-i | 切换到root用户并加载root的环境变量(等同于登录) |
注意事项
- 使用
sudo -i需要输入当前用户的密码(不是root密码) - root用户可以使用
su - username切换到普通用户(无需密码) - 可以使用
exit或Ctrl+d返回上一个用户 - 如果需要切换到其他普通用户,root用户可以使用
su - username
与传统su命令的区别
| 特性 | 传统su命令 | sudo -i命令 |
|---|---|---|
| 需要的密码 | root密码 | 当前用户密码 |
| 安全性 | 较低(共享root密码) | 较高(个人密码) |
| 审计记录 | 不记录 | 记录所有操作 |
实操演示
bash
# 普通用户切换到root用户
$ sudo -i
[sudo] password for yege: 123456
# whoami
root
# 返回普通用户
# exit
$ whoami
yege
# root用户切换到普通用户(无需密码)
# su - yege
$ whoami
yege4. 临时权限提升 - sudo
sudo命令允许普通用户临时以root身份执行特定命令。
主要特点
- 不需要切换到root用户即可执行高权限命令
- 可以精确控制用户可执行的命令
- 可以记录所有sudo操作,便于审计
- 提高系统安全性,避免长期使用root账户
使用条件
- 需要root用户预先配置sudo权限
- 普通用户需要在sudoers文件中授权
- 配置sudo权限需要编辑
/etc/sudoers文件
sudoers文件配置
使用root用户执行以下命令编辑sudoers文件:
bash
# sudo -i
Password: 123456
# vim /etc/sudoers在文件末尾添加以下内容,为普通用户授权:
# 允许用户无需密码执行所有命令
用户名 ALL=(ALL) NOPASSWD: ALL
# 允许用户输入密码后执行所有命令
用户名 ALL=(ALL) ALL实操演示
bash
# 普通用户无权限在根目录创建文件夹
$ cd /
$ mkdir test
mkdir: cannot create directory 'test': Permission denied
# 使用sudo命令提升权限(需预先配置)
$ sudo mkdir test
# ls -l
...
drwxr-xr-x 2 root root 4096 Oct 15 14:35 test配置sudo权限步骤
bash
# 1. 切换到root用户
$ sudo -i
Password: 123456
# 2. 编辑sudoers文件
# vim /etc/sudoers
# 3. 在文件末尾添加以下内容
# yege ALL=(ALL) NOPASSWD: ALL
# 4. 保存退出
# :wq
# 5. 返回普通用户
# exit
# 6. 验证sudo权限
$ sudo mkdir /test
$ ls -l /test| 命令 | 功能描述 | 使用示例 |
|---|---|---|
sudo -i | 切换到root用户(Rocky Linux 9推荐) | sudo -i |
su - username | root用户切换到指定普通用户 | su - gaokun |
exit | 返回上一个用户 | exit |
sudo command | 以root权限执行命令 | sudo mkdir /test |
sudo vim /etc/sudoers | 编辑sudoers配置文件 | sudo vim /etc/sudoers |
5. 安全最佳实践
- 避免长期使用root账户:减少误操作风险,提高系统安全性
- 使用sudo -i代替su:在Rocky Linux 9中,使用sudo -i切换用户更安全
- 谨慎配置sudo权限:只授予必要的权限,避免过度授权
- 定期修改root密码:使用强密码,提高系统安全性
- 禁用root远程登录:通过普通用户ssh登录后再使用sudo -i切换root
课程总结
这节课我们学了Linux用户管理。
root用户:
- 超级管理员,拥有最高权限
- 可以执行任何操作,包括删除系统文件
切换用户: sudo -i - 切换到root用户(Rocky Linux 9推荐) exit - 返回上一个用户 su - username - root用户切换到其他普通用户
sudo命令:
- 让普通用户临时获得root权限
sudo 命令- 以root身份执行- 需要配置sudoers文件
平时用普通用户,需要root权限时用sudo或sudo -i。
课后练习
练习1(基础)
请在Linux终端中执行以下操作:
- 使用
whoami命令查看当前用户名 - 使用sudo -i命令切换到root用户
- 在根目录创建一个测试文件夹
- 使用exit命令返回普通用户
💡 提示:使用sudo -i需要输入当前用户的密码。
练习2(进阶)
请尝试:
- 使用sudo -i命令切换到root用户
- 编辑/etc/sudoers文件,为当前用户配置sudo权限
- 返回普通用户,使用sudo命令在根目录创建文件夹
- 使用sudo命令修改系统配置文件
💡 提示:编辑sudoers文件时建议使用visudo命令,可以避免语法错误。
练习3(拓展)
请思考:
- 为什么不建议长期使用root账户?
- 使用sudo和使用su的区别是什么?
- 如何禁用root用户的远程登录功能?
💡 提示:可以从安全性、审计追踪等角度思考这些问题。