本文概述
Linux系统中的所有三个所有者(用户所有者, 组, 其他)都定义了三种权限。九个字符表示三种类型的权限。
- 读取(r):读取权限使你可以打开和读取文件的内容。但是你不能在文件中进行任何编辑或修改。
- 写入(w):写入权限允许你编辑, 删除或重命名文件。例如, 如果文件存在于目录中, 并且在文件上设置了写许可权, 但未在目录上设置写许可权, 那么你可以编辑文件的内容, 但不能删除或重命名。
- 执行(x):在Unix类型的系统中, 除非设置了执行许可, 否则你不能运行或执行程序。但是在Windows中, 没有此类许可。
权限列出如下:
permission |
在文件上 | 在目录上 |
---|---|---|
r(读取) | 读取文件内容(猫) | 读取目录内容(ls) |
w (write) |
更改文件内容(vi) | 在目录中创建文件(触摸) |
x(执行) | 执行文件 | 输入目录(cd) |
权限集
查看上面的快照, 用户所有者前面有十个字符(-rw-rw-r–)。我们将在这里描述这十个字符。
(-rw-rw-r–)的文件权限
position | characters | ownership |
---|---|---|
1 | – | 表示文件类型 |
2-4 | rw- | 用户权限 |
5-7 | rw- | 团体许可 |
8-10 | r– | 其他许可 |
如果你是用户所有者, 则用户所有者权限适用于你。其他权限与你无关。
当你是组时, 组权限将适用于你。其他权限与你无关。
当你是”其他”时, 其他权限将适用于你。用户和组权限与你无关。
权限示例
现在, 我们将显示一些示例, 说明如何查看文件或目录的权限。
查看上面的快照, 不同的目录和文件具有不同的权限。
首字母(-)或d分别代表文件和目录。
现在, 从剩下的9个字母中, 第一个三元组代表用户所有者的权限。第二个三元组代表对组所有者的许可。第三三胞胎代表允许其他。
使用chmod设置权限
你可以根据需要使用chmod命令更改权限。下面是一些示例, 用于更改不同组的权限。
向组添加权限。
句法:
chmod <groupName>+<permissionName> <fileName>
例:
chmod u+x file
查看上面的快照, 将执行权限添加到用户所有者组。
从组中删除权限
句法:
chmod <groupName>-<permissionName> <fileName>
例:
chmod g-x file
chmod u-w file
查看上面的快照, 将执行权限从组中删除, 并将写入权限从用户所有者中删除。
一起向所有组添加权限
句法:
chmod a+<permissionName> <fileName>
例:
chmod a+w file
查看上面的快照, 我们已为所有组写了权限。
注意:同样, 你也可以删除所有组的权限。
向所有组添加权限而无需键入
句法:
chmod +<permissionName> <fileName>
例:
chmod +w file
看一下上面的快照, 该示例与之前的示例相同, 唯一的区别是我们没有在其中键入a。
设置显式权限
句法:
chmod <groupName>=<permissions> <fileName>
例:
chmod o=rw file
查看上面的快照, 我们已为其他人设置了明确的读写权限。
为不同的组设置显式权限
句法:
chmod <groupName>=<permissions> <fileName>
例:
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命令
创建文件或目录时, 默认情况下会应用一组权限。这些默认权限可通过umask命令查看。
出于安全原因, 所有Unix系统都不提供对新创建文件的执行许可。
添加执行权限由你决定。
mkdir -m
‘mkdir -m’命令可用于设置模式。
句法:
mkdir -m <mode> <fileName>
例:
mkdir -m 777 new1
mkdir -m 000 new2
看上面的快照, 我们已经创建了两个文件new1和new2, 分别为777和000模式。
cp -p
‘cp -p’命令保留源文件的权限和时间戳。
句法:
cp -p <sourceFile> <destinationFile>
例:
cp -p list dupli.txt
查看上面的快照, 文件列表和dupli.txt的早期权限不同。但是, 在传递命令” cp -p list dupli.txt”之后, 这两个文件具有相同的权限。
评论前必须登录!
注册