Linux / Unix中的文件权限与示例
Linux是UNIX的克隆,UNIX是多用户操作系统,可以被许多用户同时访问。Linux也可以在大型机和服务器中使用而无需任何修改。但这引发了安全问题,因为未经请求或恶意的用户可能会破坏,更改或删除关键数据。为了有效的安全性,Linux将授权分为两个级别。
- 所有权
- 允许
在本教程中,你将学习 -
[TOC]
权限和所有权的概念在Linux中至关重要。在这里,我们将讨论它们。让我们从所有权开始。
Linux文件的所有权
Unix / Linux系统上的每个文件和目录都分配了3种类型的所有者,如下所示。
用户
用户是文件的所有者。默认情况下,创建文件的人成为其所有者。因此,用户有时也被称为所有者。
组
用户组可以包含多个用户。属于组的所有用户对该文件具有相同的访问权限。假设你有一个项目,许多人需要访问文件。你可以将所有用户添加到组中,而不是手动为每个用户分配权限,并将组权限分配给文件,以便只有该组成员才能读取或修改文件。
其他
有权访问文件的任何其他用户。此人既没有创建文件,也没有属于可以拥有该文件的用户组。实际上,它意味着其他所有人。因此,当你为其他人设置权限时,它也被称为世界的设置权限。
现在,最大的问题是Linux如何区分这三种用户类型,以便用户“A”不会影响包含其他用户“B”重要信息/数据的文件。这就像你不希望在Linux计算机上工作的同事查看你的图像。这是权限设置的位置,它们定义用户行为。
让我们了解Linux上的权限系统。
权限
UNIX / Linux系统中的每个文件和目录都具有为上面讨论的所有3个所有者定义的以下3个权限。
- 阅读:此权限授予你打开和读取文件的权限。对目录的读取权限使你能够列出其内容。
- 写入:写入权限使你有权修改文件的内容。对目录的写入权限使你有权添加,删除和重命名存储在目录中的文件。考虑一种情况,你必须在文件上写入权限,但对存储文件的目录没有写入权限。你将能够修改文件内容。但是你将无法从目录重命名,移动或删除该文件。
- 执行:在Windows中,可执行程序通常具有扩展名“.exe”,你可以轻松运行。在Unix / Linux中,除非设置了执行权限,否则无法运行程序。如果未设置执行权限,你可能仍然可以查看/修改程序代码(提供读写权限),但不能运行它。

ls - l在终端上给出
ls - l

在这里,我们突出显示了'-rw-rw-r--',这个奇怪的代码是告诉我们给予所有者,用户组和世界的权限的代码。
这里,第一个' - '表示我们选择了一个file.p>

否则,如果它是一个目录,则会显示d 。

权限很容易记住。
r = 读权限
w = 写权限
x = 执行权限
- = 无权限
将这段代码分成四部分
- 第一部分是’r',说明这是一个文件;
- 第二部分'rw-'表示所有者权限;
- 第三部分'rw-'表示用户组权限;
- 第四部分'r--'表示任何人权限;
代码的第一部分是'rw-'。这表明所有者'Home'可以:

- 阅读文件
- 编写或编辑文件
- 由于执行位设置为“ - ”,因此无法执行该文件。
根据设计,许多Linux发行版如Fedora,CentOS,Ubuntu等都会将用户添加到与用户名相同的组名中。因此,用户'tom'被添加到名为'tom'的组中。
第二部分是'rw-'。它对于用户组'Home'和组成员可以:
- 阅读文件
- 编写或编辑文件
第三部分是针对世界的,意味着任何用户。它说'r--'。这意味着用户只能:
- 阅读文件

使用'chmod'命令更改文件/目录权限
假设你不希望你的同事看到你的个人图片。这可以通过更改文件权限来实现。
我们可以使用' chmod'命令代表'更改模式'。使用该命令,我们可以在所有者,组和世界的文件/目录上设置权限(读,写,执行)。 句法:
chmod permision filename
有两种方法可以使用该命令 -
- 绝对模式
- 符号模式
绝对(数字)模式
在此模式下,文件权限不表示为字符,而是三位数的八进制数。
下表给出了所有权限类型的数字。
数 | 许可类型 | 符号 |
---|---|---|
0 | 没有许可 | --- |
1 | 执行 | - X |
2 | 写 | -W- |
3 | 执行+写入 | -wx |
4 | 读 | R-- |
5 | 读+执行 | RX |
6 | 读+写 | RW- |
7 | 读+写+执行 | RWX |
让我们看一下chmod命令的运行情况。

在上面给出的终端窗口中,我们已将文件'sample的权限更改为'764'。

'764'绝对代码说明如下:
- 所有者可以读,写和执行
- 用户组可以读写
- 世界只能阅读
这显示为'-rwxrw-r-
符号模式
在绝对模式下,你可以更改所有3个所有者的权限。在符号模式下,你可以修改特定所有者的权限。它利用数学符号来修改文件权限。
操作者 | 描述 |
---|---|
+ | 添加文件或目录的权限 |
- | 删除权限 |
= | 设置权限并覆盖先前设置的权限。 |
各用户类型的代表是 -
用户表示 | |
---|---|
u | 用户/所有者 |
g | 组 |
o | 其他 |
a | 所有 |
我们不会在像755这样的数字中使用权限,而是使用像rwx这样的字符。让我们看一个例子

改变所有权和集团
要更改文件/目录的所有权,可以使用以下命令:
chown user
如果要更改用户以及文件或目录的组,请使用该命令
chown user: groupfilename
让我们看看这个在行动

如果你只想更改组所有者,请使用该命令
chgrp group_name filename
' chgrp'代表变革组。

Tips
- 文件/ etc / group包含系统中定义的所有组
- 你可以使用命令“groups”查找你所属的所有组

- 你可以使用命令newgrp作为默认组以外的组的成员

- 你不能拥有2个拥有相同文件的组。
- 你在Linux中没有嵌套组。其中一组不能成为其他组的子组
- x-执行目录意味着允许“输入”目录并获得对子目录的可能访问权限
- 你可以在“文件和目录”上设置其他权限,这些权限将在以后的高级教程中介绍
总结
- 作为多用户系统的Linux使用权限和所有权来实现安全性。
- Linux系统上有三种用户类型即。用户,组和其他
- Linux将文件权限划分为读,写和执行,由r,w和x表示
- 可以通过'chmod'命令更改文件的权限,该命令可以进一步分为绝对模式和符号模式
- 'chown'命令可以更改文件/目录的所有权。使用以下命令:chown user file或chown user:group file
- 'chgrp'命令可以更改组所有权chrgrp组文件名
- x - 执行目录是什么意思?答:被允许“进入”一个目录并获得对子目录的访问权限。
网友评论