## 读懂权限 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),再配合日常的多操作,很容易形成肌肉记忆。