Linux 的文件权限
Linux 的文件权限
前言
记录一些常见的权限管理规则与命令.
权限位标志
测试数据
使用 root 账户执行以下命令
1 | 创建临时目录 |
以下是打印列表列表, 分别为 标志位/路径数量/所属用户/所属组/大小/创建时间/路径1
2
3
4
5drwxr-xr-x 2 siweipancc siweipancc 4096 Apr 21 20:02 ./
drwxrwxrwt 17 root root 4096 Apr 21 19:50 ../
-rw-r--r-- 1 root root 0 Apr 21 20:02 pipe
-rw-r--r-- 1 root root 17 Apr 21 20:01 root.sh
-rw-r--r-- 1 root root 11 Apr 21 20:01 root.txt
尝试执行 ./root.sh
会抛出一个 Permission denied 错误. 使用 chmod +x root.sh
修正后执行. 以下是最终列表:1
2
3
4
5drwxr-xr-x 2 siweipancc siweipancc 4096 Apr 21 20:02 ./
drwxrwxrwt 17 root root 4096 Apr 21 19:50 ../
-rw-r--r-- 1 root root 0 Apr 21 20:02 pipe
-rwxr--r-- 1 root root 17 Apr 21 20:01 root.sh*
-rw-r--r-- 1 root root 11 Apr 21 20:01 root.txt
尝试以其它用户编辑 nano root.sh 得到一个 [ File 'root.sh' is unwritable ]
错误.
标志组成
标志由 1+3+3+3 组成, 1 位为 文件夹d 或者 文件f, 剩下的每 三位代表 读/写/执行 权限, 分别归属 当前登录用户/组用户/其他用户.
chmod 命令
- 用户标志
u
代表当前用户g
代表和当前用户在同一个组的用户o
代表其他用户a
代表所有用户
- 权限值
r
代表读
权限以及八进制数4
w
代表写
权限以及八进制数2
x
代表执行
权限以及八进制数1
- 权限增删
+
代表添加目标用户相应的权限-
代表删除目标用户相应的权限=
代表添加目标用户相应的权限
使用例
chmod u+w root.sh
/chmod u-w root.sh
: 添加/删除当前用户的写权限chmod u=rwx root.sh
: 设置当前用户的 读/写/执行 权限chmod u=rwx g=rw o=r root.sh
: 设置当前用户 读/写/执行 权限, 组用户为 读/写, 其他用户为 读chmod 761 root.sh
: 等价于上边的命令, 计算规则为7=4(读)+2(写)+1(执行)
chmod --reference=./pipe ./root.txt
: 以文件 pipe 为范例设置 root.txt 的权限chmod -R 555 c1/
: 以递归方式修改文件夹 c1 的权限, 当前用户必须保留执行权限, 即 第一位必须为奇数
额外
递归修改权限遇到 Permission denied 错误
在任意目录执行 ls -alF
, 诸如 ../
与 c1/
等路径导航必须有 执行标志 x, 否则无法进入;
当执行 rm -rf ./test/
遇到以上类别的错误, 可以尝试以 root 用户组 执行chmod -R +x ./test/ && rm -rf ./test/