跳转到内容

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 test

3. 用户切换命令 - sudo -i

在Rocky Linux 9中,官方更推荐大家使用sudo -i命令来切换到root用户。

命令语法

bash
sudo -i

常用选项

选项功能描述
-i切换到root用户并加载root的环境变量(等同于登录)

注意事项

  • 使用sudo -i需要输入当前用户的密码(不是root密码)
  • root用户可以使用su - username切换到普通用户(无需密码)
  • 可以使用exitCtrl+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
yege

4. 临时权限提升 - 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 - usernameroot用户切换到指定普通用户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用户的远程登录功能?

💡 提示:可以从安全性、审计追踪等角度思考这些问题。

评论区

专业的Linux技术学习平台,从入门到精通的完整学习路径