第六章、用户权限管理

Linux 是多用户的操作系统,他允许多个用户同时登录一台电脑,并进行不同的操作。Linux 内部使用户ID(即UID,是一个从 0 开始的整数)来区分各个用户。每一个UID对应一个字符串,这个字符串就是用户名,且用户名不能重复。

root用户简介

在 Linux 系统中,root 用户是系统的超级管理员账户(UID 为 0),拥有最高权限,可以执行所有操作(包括修改内核、系统文件、加载驱动、安装软件、管理用户权限等)。

root与其他用户的区别

特性
root用户
普通用户
用户ID(UID)
0
通常≥1000(Linux默认)
权限范围
无限制(可读写所有文件、终止任意进程)
仅限自身文件和授权操作
系统修改权
可安装/删除软件、修改系统配置
仅影响用户主目录(如/home/username
危险操作
可直接执行rm -rf /等破坏性命令
受权限限制,无法删除系统文件
登录限制
默认禁止SSH直接登录(安全最佳实践)
允许正常登录

本章我们来学习用户权限管理相关的命令,内容如下:

1. sudo 命令

sudo 命令可以让普通用户临时使用 root 用户权限来执行命令,你可以认为是让普通用户如皇帝授旨,拥有大权!

命令格式

sudo 命令 [选项] [参数]

示例

Linux 的 根(/) 下不允许普通用户创建文件,但 root 用户就可以创建文件和文件夹。

weimingze@mzstudio:~$ touch /mylinux.py
touch: cannot touch '/mylinux.py': Permission denied
weimingze@mzstudio:~$ sudo touch /mylinux.py
[sudo] password for weimingze:
weimingze@mzstudio:~$ ls -l /mylinux.py
-rw-r--r-- 1 root root 0 May 22 13:57 /mylinux.py
weimingze@mzstudio:~$

可见普通用户 weimingze 创建 /mylinux.py 文件失败了,但使用 sudo touch /mylinux.py 并输入 root 用户的密码后文件被创建了,并且他的属主是 root,属组是 root。

sudo 常用选项

选项
说明
-i
切换到 root 用户

如:

weimingze@mzstudio:~$ pwd
/home/weimingze
weimingze@mzstudio:~$ sudo -i
[sudo] password for weimingze:
root@mzstudio:~# pwd
/root
root@mzstudio:~#

一开始 weimingze 用户的当前工作路径是 /home/weimingze,当执行 sudo -i 命令并输入密码后,用户的当前工作路径是 /root

我们再来看一下 命令提示符前面的这段字符串: root@mzstudio:~# 这个是 bash 解析器(后面再学 bash)下的特有提示符。我们来解释下每一段的含义

  1. root 代表当前的用户名。
  2. mzstudio 是当前的主机名(在安装系统是设定的,保存在 /etc/hostname 文件中,可以修改)。
  3. @ 是用户名和主机名的分隔符。
  4. ~ 代表你的当前工作路径是用户主目录~
  5. : 是分隔符。
  6. # 是命令提示符,超级用户的提示符是 #, 普通用户提示符是 $(普通用户都向钱看,而超级用户看到的是格局)。

有了 root 用户的密码,你就拿到了操作系统的最高权限,你自己试试吧。

练习:

  1. 使用 sudo 命令 创建文件夹 /mytest
  2. 使用 touch 命令在 /mytest 文件内创建文件 README.md
  3. 使用 vimREADME.md 内写入一行文字,然后保存退出。
  4. 删除 /mytest 文件夹。