chmod修改权限

Unix是多任务、多用户的操作系统,这以为着多个用户可以在同一时间使用同一台计算机。用户拥有文件或目录,则该用户对这个文件或目录的访问权限具有控制权。而用户又属于一个用户组(可以包含一个或多个用户),用户组成员由文件或目录的所有者授予对文件或目录的访问权限。除了对用户组授权外,文件所有者可以给每个人一些权限。
在Unix系统中,可以通过shell中输入命令 id 来查看身份信息,系统中每个用户的uid是不同的。

1
2
3
liangtongdeiMac:~ liangtong$ id
uid=501(liangtong) gid=20(staff) groups=20(staff),701(com.apple.sharepoint.group.1),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)
liangtongdeiMac:~ liangtong$

文件的读写与执行

对于文件的读写与执行,首先通过一下命令查看输出的结果:

1
2
3
4
5
6
liangtongdeiMac:playground liangtong$ mkdir test_authority
liangtongdeiMac:playground liangtong$ cd test_authority/
liangtongdeiMac:test_authority liangtong$ > authority_test.txt
liangtongdeiMac:test_authority liangtong$ ls -l authority_test.txt
-rw-r--r-- 1 liangtong staff 0 8 16 18:43 authority_test.txt
liangtongdeiMac:test_authority liangtong$

这里创建了一个目录test_authority,并在目录中创建了一个文件authority_test.txt。之后查看文件线索。这里我们主要说前十个字符 -rw-r–r–

  • 第一个代表的是文件类型。
    • - 表示普通文件
    • d 表示目录
    • 其他,比如 l 符号链接、 c 字符设备文件,比如终端机或者调制解调器、 b 块设备文件比如硬盘,CD-ROM盘
  • 剩下的九个字符叫做文件模式,代表文件所有者,文件组所有者,其他人的读、写、执行权限
Owner Group World
rwx rwx rwx

当设置文件模式后,r、w、x模式属性对文件和目录产生以下影响:

属性 文件 目录
r 读取文件的内容 允许列出目录内容,前提是目录必须可执行
w 写入文件内容,但不允许重命名或删除 可以在目录下新增、修改、重命名,前提是目录必须可执行
x 允许文件作为程序来执行,前提必须置为可读 允许进入目录,例如 cd xx

以下举几个例子:

文件属性 含义
-rwx—— 普通文件,文件所有者可读可写可执行,其他人无任何权限
-rw——- 普通文件,文件所有者可读可写,其他人无任何权限
-rw-r–r– 普通文件,文件所有者可读可写,文件所有者所在组可读,其他人可读
-rwxr-xr-x 普通文件,文件所有者可读可写可执行,文件所有者所在组可读可执行,其他人可读可执行
drwxrwx— 目录,目录所有者及所有者所在的分组可以访问目录,在目录中新建、修改、删除文件,其他人无权限
drwxr-x— 目录,目录所有者可以访问目录,在目录中新建、修改、删除文件;文件所有者所在分组可以访问目录,其他人无权限

chmod 修改文件模式

文件/目录的所有者或者超级管理员可以用 chmod 命令来更改文件或者目录的权限。
chmod命令支持两种不同的方式来更改文件模式:

  • 八进制数字表示法
    • 每个八进制数字代表了3个二进制数字。
    • 可以使用命令 chmod 600 authority_test.txt 将文件模式修改为可读可写
十进制 二进制 文件模式 说明
0 000 无权限
1 001 –x 执行
2 010 -w-
3 011 -wx 写、执行
4 100 r–
5 101 r-x 读、执行
6 110 rw- 读、写
7 111 rwx 读、写、执行
  • 符号表示法
    • 由3部分组成。
      • 会影响谁,包括 ugoa
      • 具体操作,包括 +-=
      • 设置的权限,由 r 、 w 、 x 进行组合,例如 xrwrwx
影响谁 含义
u “user”的简写,意思是文件或目录的所有者。
g 用户组
o “others”的简写,意思是其他所有的人
a “all”的简写,是”u”, “g”和“o”三者的联合
如果没有指定字符,则假定使用”all”
具体操作 含义
+ 加上一个权限
- 删掉一个权限
= 只有指定的权限可用,其它所有的权限被删除


以下举几个例子:

符号表示 含义
u+x 为文件所有者添加可执行权限
+x 为文件所有者,用户组,和其他所有人添加可执行权限。 等价于 a+x。
o-rw 除了文件所有者和用户组,删除其他人的读权限和写权限
go=rw 给群组的主人和任意文件拥有者的人读写权限。如果群组的主人或全局之前已经有了执行的权限,他们将被移除。
u+x,go=rw 给文件拥有者执行权限并给组和其他人限定读和执行的权限。多种设定可以用逗号分开。
坚持原创技术分享,您的支持将鼓励我继续创作!