📜  Linux文件权限

📅  最后修改于: 2020-12-08 05:12:06             🧑  作者: Mango

文件权限

Linux系统中的所有三个所有者(用户所有者,组,其他)都定义了三种权限。九个字符表示三种类型的权限。

  • 读取(r):读取权限使您可以打开和读取文件的内容。但是您不能在文件中进行任何编辑或修改。
  • 写入(w):写入权限允许您编辑,删除或重命名文件。例如,如果文件存在于目录中,并且在文件上设置了写许可权,但没有在目录上设置写许可权,那么您可以编辑文件的内容,但是不能删除或重命名。
  • 执行(x):在Unix类型的系统中,除非设置了执行许可,否则您不能运行或执行程序。但是在Windows中,没有此类许可。

权限如下所示:

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 + 

例:

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、274111。

遮罩

创建文件或目录时,默认情况下会应用一组权限。这些默认权限可通过umask命令查看。

出于安全原因,所有Unix系统都不提供对新创建文件的执行许可。

添加执行权限由您决定。

mkdir -m

'mkdir -m'命令可用于设置模式。

句法:

mkdir -m  

例:

mkdir -m 777 new1
mkdir -m 000 new2

看上面的快照,我们创建了两个文件new1new2 ,分别为777000模式。

cp -p

'cp -p'命令保留源文件的权限和时间戳。

句法:

cp -p  

例:

cp -p list dupli.txt

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