📅  最后修改于: 2020-12-08 05:12:06             🧑  作者: Mango
Linux系统中的所有三个所有者(用户所有者,组,其他)都定义了三种权限。九个字符表示三种类型的权限。
权限如下所示:
permission | on a file | on a directory |
---|---|---|
r (read) | read file content (cat) | read directory content (ls) |
w (write) | change file content (vi) | create file in directory (touch) |
x (execute) | execute the file | enter the directory (cd) |
查看上面的快照,用户所有者前面有十个字符(-rw-rw-r–)。我们将在这里描述这十个字符。
(-rw-rw-r–)的文件权限
position | characters | ownership |
---|---|---|
1 | – | denotes file type |
2-4 | rw- | permission for user |
5-7 | rw- | permission for group |
8-10 | r– | permission for other |
如果您是用户所有者,则用户所有者权限适用于您。其他权限与您无关。
当您是组时,组权限将适用于您。其他权限与您无关。
当您是“其他”时,其他权限将适用于您。用户和组权限与您无关。
权限示例
现在,我们将显示一些示例,说明如何查看文件或目录的权限。
查看上面的快照,不同的目录和文件具有不同的权限。
首字母(-)或d分别代表文件和目录。
您可以根据需要使用chmod命令更改权限。下面是一些示例,用于更改不同组的权限。
向组添加权限。
句法:
chmod +
例:
chmod u+x file
查看上面的快照,将执行权限添加到用户所有者组。
从组中删除权限
句法:
chmod -
例:
chmod g-x file
chmod u-w file
查看上面的快照,将执行权限从组中删除,并将写入权限从用户所有者中删除。
一起向所有组添加权限
句法:
chmod a+
例:
chmod a+w file
查看上面的快照,我们已为所有组授予写权限。
注意:同样,您也可以删除所有组的权限。
向所有组添加权限而无需键入
句法:
chmod +
例:
chmod +w file
查看上面的快照,该示例与之前的示例相同,唯一的区别是我们没有在其中键入a 。
设置显式权限
句法:
chmod =
例:
chmod o=rw file
查看上面的快照,我们已为其他人设置了明确的读写权限。
为不同的组设置显式权限
句法:
chmod =
例:
chmod u=rwx,g=rw,o=r file
查看上面的快照,我们为所有三个组设置了权限。
也可以为组设置八进制权限。
例如,将r octal设置为4,将w octal设置为2,将x octal设置为1。
八进制表:
binary | octal | permissions |
---|---|---|
000 | 0 | — |
001 | 1 | –x |
010 | 2 | -w- |
011 | 3 | -wx |
100 | 4 | r– |
101 | 5 | r-x |
110 | 6 | rw- |
111 | 7 | rwx |
由此我们可以得出结论,
777 = rwxrwxrwx
765 = rwxrw-r-x
654 = rw-r-xr--
等等。
查看上面的快照,我们显示了一些随机的八进制示例,其数字分别为777、274和111。
创建文件或目录时,默认情况下会应用一组权限。这些默认权限可通过umask命令查看。
出于安全原因,所有Unix系统都不提供对新创建文件的执行许可。
添加执行权限由您决定。
mkdir -m
'mkdir -m'命令可用于设置模式。
句法:
mkdir -m
例:
mkdir -m 777 new1
mkdir -m 000 new2
看上面的快照,我们创建了两个文件new1和new2 ,分别为777和000模式。
cp -p
'cp -p'命令保留源文件的权限和时间戳。
句法:
cp -p
例:
cp -p list dupli.txt
查看上面的快照,文件列表和dupli.txt的早期权限不同。但是,在传递命令“ cp -p list dupli.txt”之后,这两个文件具有相同的权限。