文件 / 文件夹权限:chmod
1.介绍
chmod
命令用于改变文件或目录的访问权限。
- 改变文件权限
chmod 777 xxx.txt
- 改变文件夹下所有文件的权限
chmod -R 777 *
-R
是递归遍历子目录,*
通配符代表要操作的文件。
777 777 777 有 3 3 3 位,最高位 7 7 7 是设置 文件所有者访问权限,第二位是设置 群组访问权限,最低位是设置 其他人访问权限。其中每一位的权限用数字来表示。具体有这些权限:
r
(Read
,读取,权限值为 4 4 4):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。w
(Write
,写入,权限值为 2 2 2):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。x
(eXecute
,执行,权限值为 1 1 1):对文件而言,具有执行文件的权限;对目录来说该用户具有进入目录的权限。
首先我们来看如何确定单独一位上的权限数值,例如最高位表示文件所有者权限数值,当数字为
7
7
7 时,
7
7
7 用 rwx
表示(
4
+
2
+
1
=
7
4+2+1=7
4+2+1=7);如果数值为
6
6
6,则用 rw-
表示(
4
+
2
+
0
=
6
4+2+0=6
4+2+0=6),-
表示不具备权限,这里表示不具备 “执行” 权限。
// 举例
rwx rw- r-- 764
rw- r-- r-- 644
rw- rw- r-- 664
在实际中更常见的是如下 10 10 10 个字母字符串的样子
drwxrwxr-x
- 第
1
1
1 位,表示文件类型,如
d
表示directory
,如果是-
就表示正常的文件。 - 第
2
、
3
、
4
2、3、4
2、3、4 位,表示所有者(
user
)的权限。 - 第
5
、
6
、
7
5、6、7
5、6、7 位,表示群组(
group
)的权限。 - 第
8
、
9
、
10
8、9、10
8、9、10 位,表示其他人(
other
)的权限。
2.实验
mkdir test && cd test
vim xx.md
ls -al
// 表示所有者可读可写,其他任何人只拥有读取的权限
-rw-r--r-- xx.md
// 设置所有者拥有3个权限, 群组拥有可读可写的权限, 其他人拥有可读可写的权限
chmod 766 xx.md
// 设置3种身份的人都没有写的权限
chmod -w xx.md
// 只给拥有者加上可写权限
chmod u+w xx.md
// 只给群组加上可写权限
chmod g+w xx.md
// 只给其他人加上可写权限
chmod o+w xx.md
// 去掉其他人的可写权限
chmod o-w xx.md
// 给所有人去掉可写权限
chmod a-w xx.md
// 设置群组的特定权限
chmod g=rwx xx.md
// 给整个目录所有的文件添加权限(即递归)
chmod -R 777 xx.md