linux中 文件和目录权限
在 Linux/Unix 系统中,每个文件和目录都有权限,权限控制着谁可以对文件或目录进行何种操作。Linux/Unix 系统中的文件和目录权限是通过一组三位八进制数来表示的,也称为“权限位”或“权限模式”。
每个文件和目录的权限位由三个部分组成,分别表示文件所有者的权限、所属组的权限和其他用户的权限。每个部分又由三个权限字符组成,分别表示读、写、执行权限。
权限字符和对应的含义如下:
r 表示读权限(read),可以查看文件内容或者目录中的文件列表。
w 表示写权限(write),可以修改文件内容或者在目录中创建、删除文件。
x 表示执行权限(execute),对于文件表示可以运行该文件,对于目录表示可以进入该目录。
除了这三个基本权限之外,还有一些特殊权限,如:
s 表示设置用户或组 ID,当用户或组执行该文件时,会临时获取该文件所有者或所属组的权限。
t 表示设置粘滞位,只有文件所有者或管理员才能删除该文件。
每个权限位由一个数字来表示,数字的范围是 0-7,对应不同的权限组合。
数字权限和对应的含义如下:
0 表示没有权限。
1 表示执行权限(x)。
2 表示写权限(w)。
3 表示写权限和执行权限(w+x)。
4 表示读权限(r)。
5 表示读权限和执行权限(r+x)。
6 表示读权限和写权限(r+w)。
7 表示读权限、写权限和执行权限(r+w+x)。
例如,权限位 rw-r--r-- 表示文件所有者具有读写权限,所属组和其他用户只有读权限,对应的数字权限为 644。
要查看文件或目录的权限,可以使用 ls -l 命令,该命令会列出文件或目录的详细信息,包括权限位、所有者、所属组、大小、时间戳等。例如:
-rw-r--r-- 1 user user 12345 Aug 3 10:00 file.txt
drwxr-xr-x 2 user user 4096 Aug 3 10:01 subdir
在这个例子中,第一个字符表示文件类型,- 表示普通文件,d 表示目录。接下来的 9 个字符表示文件的权限,前 3 个字符表示所有者的权限,中间 3 个字符表示所属组的权限,后面 3 个字符表示其他用户的权限。r 表示读权限,w 表示写权限,x 表示执行权限。例如,rw-r--r-- 表示文件所有者具有读写权限,所属组和其他用户只有读权限。
要修改文件或目录的权限,可以使用 chmod 命令,该命令可以使用数字或符号两种方式来设置权限。例如,要将 file.txt 的权限设置为 -rw-r--r--,可以使用以下命令:
chmod 644 file.txt
在这个命令中,数字 644 表示文件所有者具有读写权限,所属组和其他用户只有读权限。
在 rwxr-xr-x 中,第一个字符表示所有者的权限,前三个字符 rwx 分别表示读、写、执行权限,表示文件所有者具有读、写、执行权限。第二个字符表示所属组的权限,中间三个字符 r-x 分别表示读、不具备写权限、执行权限,表示文件所属组具有读、执行权限,但不具备写权限。第三个字符表示其他用户的权限,后面三个字符 r-x 与第二个字符相同,表示其他用户也具有读、执行权限,但不具备写权限。
因此,在 rwxr-xr-x 中,前两个 rwxr 分别表示文件所有者和所属组的权限中都具有读、写、执行权限中的读、写、执行权限,而第三个 r-x 表示其他用户的权限中只有读、执行权限,缺少写权限。