什么是权限
权限在操作系统中是一个重要的功能,它允许你控制谁可以读取、写入或执行某个文件。不同的操作系统和文件系统可能有不同的权限模型,但在类Unix系统(如Linux和macOS)中,文件权限通常由三部分组成:所有者权限(owner)、组权限(group)和其他用户权限(others)。每个部分可以分别设置读权限(read)、写权限(write)和执行权限(execute)。
权限的作用
保护敏感信息:
- 通过限制文件的读写权限,可以确保只有特定用户或用户组可以访问敏感信息,防止未授权的访问。
控制文件修改:
- 通过设置写权限,可以防止某些用户修改或删除文件,从而保护文件内容的完整性。
允许或禁止执行文件:
- 通过设置执行权限,可以控制哪些用户可以执行某个文件。这对于脚本文件和可执行程序尤为重要。
管理协作:
- 在多用户环境中,合理设置文件权限可以方便不同用户或用户组之间的协作,确保每个用户只能访问和操作自己应该处理的文件。
权限讲解
权限用户类型分为三类(所有者、组、其他用户),这三类分别用一位数值表示,那么一共就是三位数值,例如 777 是个三位数的数值。它们每一位代表的意思如下:
- 第一位代表所有者权限。
- 第二位代表组权限。
- 第三位代表其他用户权限。
权限操作类型分为三类(读、写、执行),这三类分别又分别用一个数字表示。如下:
- 读权限(r),用数字 4 表示
- 写权限(w),用数字 2 表示
- 执行权限(x),用数字 1 表示
这些值可以相加组合成多种权限,例如:
- 读和写权限(rw)的值为 4 + 2 = 6
- 读和执行权限(rx)的值为 4 + 1 = 5
- 读写执行权限(rwx)的值为 4 + 2 + 1 = 7
明白每一位表示的意思,和每个数字表示的意思后。我们就可以对文件设置不同的用户权限了,例如:
- 777:所有用户都有最高权限。
- 755:所有者的权限是7(读写执行),组的权限是5(读执行),其他用户的权限是5(读执行)。
- 644:所有者的权限是6(读写),组的权限是4(读),其他用户的权限是4(读)。
- 600:所有者的权限是6(读写),组和其他用户的权限是0(无权限)。
权限的使用
给example.txt文件设置644权限
chmod 644 example.txt
给目录mydir及其所有子文件和子目录设置755权限
chmod -R 755 mydir
ps:
本文讲解的是操作系统八进制权限模式。操作系统还有符号权限模式,例如 u g o a + - = r w x,使用时 chmod u+w example.txt,chmod og-r example.txt 等,大家看到其他人这样写不要觉得奇怪。
目录详细信息说明
第一列:文件类型和权限
- 示例:drwxr-xr-x
- 说明:这列包含文件类型和权限信息,总共10个字符。
- 第1个字符表示文件类型。
-
符号 类型 - 普通文件 d 目录 l 符号链接 b 块设备文件 c 字符设备文件 p 管道文件 s 套接字文件
-
-
后面的9个字符分为3组,每组3个字符,依次表示所有者、组和其他用户的权限:
-
符号 说明 r 读权限 (read) w 写权限 (write) x 执行权限 (execute) - 无权限 (no permission) t 表示粘滞位被设置,并且其他用户对该目录有执行权限。 T 表示粘滞位被设置,但其他用户对该目录没有执行权限。 -
粘滞位(sticky bit)
-
粘滞位是一种特殊的权限标志,通常用于目录。它限制目录中的文件或子目录的删除权限,即使用户对目录本身有写权限。但是只有文件的所有者、目录的所有者或超级用户(root)才能删除或重命名目录中的文件。
-
-
-
- 第1个字符表示文件类型。
第二列:硬链接数
这列表示文件的硬链接数。对于目录,它表示子目录的数量(包括当前目录`.`和上级目录`..`,使用 ll -a 查看)。
第三列:所有者
第四列:组
第五列:文件大小
第六、七、八列:分别表示 月、日、时间/年。时间和年,是本年显示时间否则显示年
第九列:文件或目录名称。