Linux文件权限

本文概述

  • 权限集
  • 使用chmod设置权限
  • 设置八进制权限
  • umask命令
Linux系统中的所有三个所有者(用户所有者, 组, 其他)都定义了三种权限。九个字符表示三种类型的权限。
  1. 读取(r):读取权限使你可以打开和读取文件的内容。但是你不能在文件中进行任何编辑或修改。
  2. 写入(w):写入权限允许你编辑, 删除或重命名文件。例如, 如果文件存在于目录中, 并且在文件上设置了写许可权, 但未在目录上设置写许可权, 那么你可以编辑文件的内容, 但不能删除或重命名。
  3. 执行(x):在Unix类型的系统中, 除非设置了执行许可, 否则你不能运行或执行程序。但是在Windows中, 没有此类许可。
权限列出如下:
permission
在文件上 在目录上
r(读取) 读取文件内容(猫) 读取目录内容(ls)
w (write)
更改文件内容(vi) 在目录中创建文件(触摸)
x(执行) 执行文件 输入目录(cd)
权限集
Linux文件权限

文章图片
查看上面的快照, 用户所有者前面有十个字符(-rw-rw-r– )。我们将在这里描述这十个字符。
【Linux文件权限】(-rw-rw-r– )的文件权限
position characters ownership
1 表示文件类型
2-4 rw- 用户权限
5-7 rw- 团体许可
8-10 r– 其他许可
如果你是用户所有者, 则用户所有者权限适用于你。其他权限与你无关。
当你是组时, 组权限将适用于你。其他权限与你无关。
当你是” 其他” 时, 其他权限将适用于你。用户和组权限与你无关。
权限示例
现在, 我们将显示一些示例, 说明如何查看文件或目录的权限。
Linux文件权限

文章图片
查看上面的快照, 不同的目录和文件具有不同的权限。
首字母(-)或d分别代表文件和目录。
现在, 从剩下的9个字母中, 第一个三元组代表用户所有者的权限。第二个三元组代表对组所有者的许可。第三三胞胎代表允许其他。
使用chmod设置权限 你可以根据需要使用chmod命令更改权限。下面是一些示例, 用于更改不同组的权限。
向组添加权限。
句法:
chmod < groupName> +< permissionName> < fileName>

例:
chmod u+x file

Linux文件权限

文章图片
查看上面的快照, 将执行权限添加到用户所有者组。
从组中删除权限
句法:
chmod < groupName> -< permissionName> < fileName>

例:
chmod g-x file chmod u-w file

Linux文件权限

文章图片
查看上面的快照, 将执行权限从组中删除, 并将写入权限从用户所有者中删除。
一起向所有组添加权限
句法:
chmod a+< permissionName> < fileName>

例:
chmod a+w file

Linux文件权限

文章图片
查看上面的快照, 我们已为所有组写了权限。
注意:同样, 你也可以删除所有组的权限。
向所有组添加权限而无需键入
句法:
chmod +< permissionName> < fileName>

例:
chmod +w file

Linux文件权限

文章图片
看一下上面的快照, 该示例与之前的示例相同, 唯一的区别是我们没有在其中键入a。
设置显式权限
句法:
chmod < groupName> =< permissions> < fileName>

例:
chmod o=rw file

Linux文件权限

文章图片
查看上面的快照, 我们已为其他人设置了明确的读写权限。
为不同的组设置显式权限
句法:
chmod < groupName> =< permissions> < fileName>

例:
chmod u=rwx, g=rw, o=r file

Linux文件权限

文章图片
查看上面的快照, 我们已经为所有三个组设置了权限。
设置八进制权限 也可以为组设置八进制权限。
例如, 将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--

等等。
Linux文件权限

文章图片
查看上面的快照, 我们显示了一些随机的八进制示例, 其数字分别为777、274和111。
umask命令 创建文件或目录时, 默认情况下会应用一组权限。这些默认权限可通过umask命令查看。
出于安全原因, 所有Unix系统都不提供对新创建文件的执行许可。
添加执行权限由你决定。
Linux文件权限

文章图片
mkdir -m
‘ mkdir -m’ 命令可用于设置模式。
句法:
mkdir -m < mode> < fileName>

例:
mkdir -m 777 new1 mkdir -m 000 new2

Linux文件权限

文章图片
看上面的快照, 我们已经创建了两个文件new1和new2, 分别为777和000模式。
cp -p
‘ cp -p’ 命令保留源文件的权限和时间戳。
句法:
cp -p < sourceFile> < destinationFile>

例:
cp -p list dupli.txt

Linux文件权限

文章图片
查看上面的快照, 文件列表和dupli.txt的早期权限不同。但是, 在传递命令” cp -p list dupli.txt” 之后, 这两个文件具有相同的权限。

    推荐阅读