Linux 文件权限与用户管理
Linux 文件权限与用户管理 — 学习笔记
本文档整理了 Linux 文件权限、用户管理、软链接等核心知识点,包含对比表格、命令速查和实战练习(附答案)。
一、用户类型概述
Linux 系统中存在三类用户概念:
| 用户类型 | 说明 | 特点 |
|---|---|---|
| 普通用户 | 由管理员创建的日常账户 | 操作受限,只能操作有权限的文件 |
| root 超级用户 | 系统管理员账户 | 拥有最高权限,不受任何权限限制,可任意修改系统文件 |
| 用户组 (Group) | 一组用户的权限集合 | 方便批量管理权限,组内用户共享组权限 |
1.1 关于 root 的重要提示
- root 是 Linux 的 超级管理员,权利最大、责任也最大
- 工作中尽量不使用 root 直接操作,以防误操作导致系统故障
- 正确做法:使用普通用户 +
sudo提权来执行管理操作
二、文件权限分类 (rwx)
Linux 中每个文件/目录都有 读®、写(w)、执行(x) 三种权限,但针对文件和目录,含义不同:
| 权限 | 针对文件 (File) | 针对目录 (Directory) |
|---|---|---|
| r (读) | 可查看文件内容(cat、more、tail) |
可列出目录中的文件列表(ls) |
| w (写) | 可修改文件内容(vim编辑、echo追加) |
可删除/创建目录中的子文件或子目录(rm、touch、mkdir) |
| x (执行) | 可执行文件(二进制文件、.sh脚本) |
可进入目录(cd) |
2.1 重要结论
删除一个文件,不需要对该文件本身有权限,而是需要对该文件所在的目录有 w (写) 权限,且需要有 x (执行) 权限才能进入目录。
三、三个角色 + all
每个文件的权限都对应 三个角色 来分别设置:
| 角色 | 缩写 | 含义 | 说明 |
|---|---|---|---|
| 属主 | u (user) |
文件的创建者/拥有者 | 默认是创建该文件的用户 |
| 属组 | g (group) |
文件所属的用户组 | 默认是创建者的主组 |
| 其他人 | o (other) |
除属主和属组成员外的所有用户 | 既不是u也不是g的用户 |
| 所有角色 | a (all) |
同时代表 u、g、o 三个角色 | 用于一次性设置所有角色权限 |
3.1 文件权限查看示例
$ ls -l file.txt
-rw-r--r-- 1 user01 group01 1024 Mar 16 10:00 file.txt
拆解解析:
- rw- r-- r-- 1 user01 group01 1024 Mar 16 10:00 file.txt
| | | | | | | | | |
| | | | | | | | | └── 文件名
| | | | | | | | └── 最后修改时间
| | | | | | | └── 文件大小(字节)
| | | | | | └── 属组(group)
| | | | | └── 属主(user)
| | | | └── 硬链接数
| | | └── o(其他人)权限: r--
| | └── g(属组)权限: r--
| └── u(属主)权限: rw-
└── 文件类型: - 普通文件
3.2 通过角色关系控制权限的示例
场景:file.txt 的权限是 rwxrw----,属主是 jack01,属组是 devops
| 目标 | 操作方法 | 命令 |
|---|---|---|
让 bob01 拥有读写执行权限 |
将文件属主改为 bob01 |
chown bob01 file.txt |
让 bob01 拥有读写权限 |
将 bob01 加入 devops 组 |
usermod -G devops bob01 |
四、Linux 七种文件类型
| 类型符号 | 名称 | 说明 | 示例 |
|---|---|---|---|
- |
普通文件 | 文本、二进制、压缩包等 | .txt、.sh、.tar.gz |
d |
目录文件 | 由 mkdir 创建 |
/home、/var/log |
l |
软链接 | 类似 Windows 快捷方式 | ln -s 创建 |
b |
块设备文件 | 硬盘、光驱等存储设备 | /dev/sda、/dev/sdb |
c |
字符设备文件 | 串口、终端等 | /dev/tty |
p |
管道文件 | 进程间通信 | — |
s |
Socket文件 | 进程间网络通信 | mysql.sock |
五、核心命令
5.1 chmod — 修改文件/目录权限
字母表示法:
| 命令 | 作用 |
|---|---|
chmod u+r file |
给属主添加读权限 |
chmod u-r file |
给属主移除读权限 |
chmod g+w file |
给属组添加写权限 |
chmod o-x file |
给其他人移除执行权限 |
chmod a+r file |
给所有角色添加读权限 |
chmod u+rwx,g+rw,o-r file |
组合设置 |
数字表示法:
| 权限字符 | 对应数字 | 含义 |
|---|---|---|
r |
4 | 可读 |
w |
2 | 可写 |
x |
1 | 可执行 |
- |
0 | 无权限 |
常用数字组合速查表:
| 数字 | 字母表示 | 适用场景 |
|---|---|---|
777 |
rwxrwxrwx |
全开(慎用) |
755 |
rwxr-xr-x |
可执行脚本、目录 |
644 |
rw-r--r-- |
普通文件默认 |
640 |
rw-r----- |
仅属主和组可读写 |
600 |
rw------- |
私密文件(如密钥) |
000 |
--------- |
无任何权限 |
chmod 755 script.sh # 脚本可执行
chmod 644 document.txt # 普通文档
chmod 600 ~/.ssh/id_rsa # 私钥文件
chmod -R 755 /data # 递归修改目录下所有文件
5.2 chown — 修改属主 (user)
chown user01 file.txt # 修改属主为 user01
chown user01:group01 file.txt # 同时修改属主和属组
chown -R user01 /data # 递归修改目录及其子文件
5.3 chgrp — 修改属组 (group)
chgrp devops file.txt # 修改属组为 devops
chgrp -R devops /data # 递归修改
六、软链接 (Symbolic Link)
软链接类似于 Windows 的快捷方式,指向另一个文件或目录的实际路径。
6.1 创建软链接
ln -s 源文件路径 链接文件路径
# 示例:为代码雨程序创建快捷方式
ln -s /usr/local/cmatrix12/bin/cmatrix /usr/local/bin/cmatrix
6.2 软链接 vs PATH 变量
| 对比项 | PATH 变量 | 软链接 (ln -s) |
|---|---|---|
| 作用范围 | 添加整个目录 | 针对单个文件 |
| 查找方式 | 系统按PATH顺序搜索 | 直接跳转到目标路径 |
| 适用场景 | 批量添加可执行文件 | 为特定程序创建快捷入口 |
| 查看命令 | echo $PATH |
ls -l 显示 -> |
6.3 软链接与 Python 多版本管理
当系统同时存在多个 Python 版本时,通过软链接可以灵活切换:
# 查看 python2 实际指向
ll /usr/bin/python2
# 输出: lrwxrwxrwx 1 root root 9 Feb 25 15:04 /usr/bin/python2 -> python2.7
# python2.7 是实际的可执行二进制文件
ll /usr/bin/python2.7
# 输出: -rwxr-xr-x 1 root root 7216 Apr 11 2018 /usr/bin/python2.7
掌握 软链接 和 PATH 配置,即可灵活管理各种软件版本和路径。
七、权限设置实战练习(附答案)
7.1 文件权限练习题
题目 1: 给 /data 目录设置:属主全部权限,属组可读可执行,其他用户无权限。请用 2 种方式写。
# 方式一:字母法
chmod u+rwx,g+rx,o-rwx /data
# 方式二:数字法
chmod 750 /data
题目 2: 设置 /data/user_info.txt 权限:属主读、写,属组读、写,其他人只读。
chmod u+rw,g+rw,o+r /data/user_info.txt
# 或
chmod 664 /data/user_info.txt
题目 3: 设置 /data/password.txt 文件,只有属主读写,其他人无权限。
chmod u+rw,g-rwx,o-rwx /data/password.txt
# 或
chmod 600 /data/password.txt
题目 4-1: 文件 /test_data/file.txt 权限为 ---------,普通用户 yuchao01 能进行哪些操作?
答案: 无任何操作权限。cat/more 读取会报"权限不够",vim/echo 写入会报"权限不够",执行也会报"权限不够"。
题目 4-2: 文件权限为 -r--r--r--,普通用户能进行哪些操作?
答案: 只能读(cat/more/tail),不能写(vim/echo 会报"权限不够"),不能执行。
题目 4-3: 文件权限为 -rw-r--r--,普通用户能进行哪些操作?
答案: 作为 other 角色,只能读(cat/more/tail),不能写,不能执行。
题目 4-4: 文件权限为 -rw-r--rw-,普通用户能进行哪些操作?
答案: 作为 other 角色,有 rw- 权限,可以读和写(cat 查看、echo/vim 编辑),但不能执行。
题目 4-5: 文件权限为 -rw-r--rwx,普通用户能进行哪些操作?
答案: 作为 other 角色,有 rwx 权限,可以读、写、执行。但执行的前提是文件内容是可执行代码(如 bash 脚本)。
题目 4-6: 文件权限为 --------w-,普通用户能进行哪些操作?
答案: 作为 other 角色,只有 w 权限。不能读(cat 报错),不能执行,但可以写入(echo 追加内容到文件)。
题目 4-7: 文件权限为 --------wx,普通用户能进行哪些操作?
答案: 作为 other 角色,有 wx 权限。不能读,但可以写入和尝试执行(前提是文件内容是可执行脚本)。
7.2 目录权限练习题
题目: 分别创建以下权限的文件夹,用普通用户登录测试对目录的读、写、执行:
| 权限 | 数字 | 测试结论 |
|---|---|---|
r-- |
400 | 只能 ls 看到文件名,但无法 cd 进入,无法创建/删除文件 |
rw- |
600 | 能看到文件名,但无法 cd 进入,无法实际创建/删除 |
r-x |
500 | 可以 ls 查看 + cd 进入,但无法创建/删除文件 |
-w- |
200 | 几乎无用,无法 ls、无法 cd,虽然理论上可写但需要x配合 |
--x |
100 | 可以 cd 进入(如果能知道文件名),但无法 ls 查看 |
rwx |
700 | 完全控制:查看、进入、创建/删除 |
7.3 综合实战:创建并执行脚本
# 1. 创建脚本文件
touch say_hello.sh
# 2. 写入脚本内容
cat > say_hello.sh << 'EOF'
#!/bin/bash
name="Linux"
echo "Hello, ${name}! Welcome to the world of permissions."
EOF
# 3. 添加执行权限
chmod u+x say_hello.sh
# 4. 执行脚本
./say_hello.sh
# 输出: Hello, Linux! Welcome to the world of permissions.
八、速查速记卡
常用命令速查
ls -l file # 查看文件权限
ls -ld /data # 查看目录本身权限
chmod 755 file # 数字法改权限
chmod u+rwx,g+rx file # 字母法改权限
chown user:group file # 改属主和属组
chgrp group file # 改属组
ln -s /path/src /path/dst # 创建软链接
权限计算口诀
r = 4,w = 2,x = 1,无 = 0
三个数字分别代表:属主 / 属组 / 其他人
例:
755=rwx(7)r-x(5)r-x(5)
更多推荐




所有评论(0)