## 读懂权限
1. **文件类型与权限段结构**
执行 `ls -l` 会显示类似下图的权限信息:
```Java
drwxr-xr-x 2 user group 4096 May 5 10:00 mydir
-rw-r--r-- 1 user group 1024 May 5 10:00 myfile.txt
```
第一列字符串可分解为:
- 第1个字符:文件类型(`-`表示普通文件,`d`表示目录,`l`表示软链接等)
- 接下来的9个字符分成3组,每3个一组,分别代表**用户(user)**、**组(group)**、**其他(others)**的权限。
每组权限的三个字符位置代表`r`(读, read)、`w`(写, write)、`x`(执行, execute),若无该权限则用`-`表示。
举例:`-rw-r--r--`
- `rw-`:用户有读写权限
- `r--`:组有读权限
- `r--`:其他人有读权限
2. **权限值对应**
每种权限有一个数值:`r=4, w=2, x=1`
将一组权限的数字相加,即得该角色的权限值。
- `rwx` = 4+2+1 = 7
- `r-x` = 4+0+1 = 5
- `r--`= 4+0+0 = 4
7就是满分(全部权限),5稍微少点(没写),4再少(只读)。
## 修改权限
1. **字符模式修改**
使用 `chmod` 可以用字母加减来修改权限:
- `chmod u+x filename`:给用户(u)增加执行(x)权限
- `chmod g-w filename`:去除组(g)的写(w)权限
- `chmod o=r filename`:将其他人(o)的权限设为只读(r)
2. **数字模式修改**
用三位数字表示用户、组、其他的权限值,比如:
- `chmod 755 filename` → 用户7(rwx), 组5(r-x), 其他5(r-x)
- `chmod 644 filename` → 用户6(rw-), 组4(r--), 其他4(r--)
**形象记忆**:想成组合密码锁的三个数字轮盘,各自代表用户、组、其他。每个数字对应你要给他们多少分的权限红包(7分、5分、4分等等)。
## 综合记忆技巧
- **口诀形式**:
- 读(r=4)写(w=2)执行(x=1),加起来就是权限分。
- `u/g/o`三大角色,`r/w/x`三盏灯,`+/-/=`三种操作方式。
- **从现实场景联想**:
把你的文件看成一个屋子:
- 用户(屋主):是否能进屋子(x),查看(r),装修(w)
- 组(合租室友):是否能进来看看(r),装修(w),直接进去(x)
- 其他人(陌生人):只能在窗外看看吗(r),可不可以开门进(x),能不能动里面的东西(w)?
- **多练习**:
多使用`ls -l`观察不同文件权限,多用`chmod`尝试修改权限,实践一两次后就能加深记忆。
总的来说,**读懂文件权限**就是认清`r/w/x`和`u/g/o`的对应关系,再把这9个字符一组组拆分;**修改权限**则是通过`chmod`命令灵活运用字符模式或数字模式来加减权限。通过想象灯的开关(显示r/w/x就是灯亮),把权限值当成分数(r=4,w=2,x=1),再配合日常的多操作,很容易形成肌肉记忆。