在 Linux/Unix 中更改文件夹和目录的权限
文件权限系统是 Linux 操作系统的基本安全元素之一。
这些功能允许我们调整文件权限和访问模式。我们提供基于适当权限的权限,以避免在用户未获得对文件和文件夹的适当访问权限时可能出现的漏洞。
Unix/Linux 系统中的文件所有权
在 Unix/Linux 系统中,文件和目录的所有权分为三种类型。文件的分配所有者有权根据它收到的权限对其进行更改。
- 所有者权限:文件所有者的权限指定文件所有者可以执行的功能。由于创建文件的用户成为其所有者,因此用户也称为所有者。
- 按组划分的权限:组的权限决定了如果用户是该组的成员,他们可以对文件执行哪些活动。
- 附加权限:其他用户的权限定义了他们可以对文件执行的操作。
每个文件最初都有三个访问选项。它们如下:
-
Read (r)
:它允许你检索文件的内容,但不能写入它们。它将使你能够接收在目录中找到的文件和目录的列表。 -
Write (w)
:它使你能够向文件添加新数据或更改现有数据,以及创建和修改文件和目录。 -
Execute (x)
:如果程序没有执行标志,则无法运行。为所有程序和脚本设置此属性。系统使用它来确定文件是否应该作为程序启动。
在 Linux 中查看文件权限
当然,你可以使用 Linux 上的文件管理器来搜索文件权限。它们都支持此功能,但你将通过这种方式收到部分信息。
使用带有 -l
参数的 ls
命令来获取所有标志的完整详细信息。将显示目录中的所有文件,以及它们的属性和位。
在存储文件的文件夹中运行以下命令以查找 Linux 文件的权限:
$ ls -l
我在其中创建了一个文件夹和两个文件,test
和 testfile
。
输出:
total 0
-rw-rw-r-- 1 user user 0 Jan 14 01:00 test
-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile
第一列表示各种访问模式或与文件或目录相关的权限。然后是权利组,首先是所有者,然后是组,然后是其他所有人。
让我们仔细看看权限标志的条件值是什么意思:
-
---
- 完全没有权利; -
--x
- 仅允许文件作为程序执行,但不能更改或读取; -
-w-
- 只允许写入和修改文件; -
-wx
- 允许修改和执行,但在目录的情况下,你无法查看其内容; -
r--
- 只读权限; -
rx
- 只能读取和执行,没有写入权限; -
rw-
- 读写权限,但不能执行; -
rwx
- 所有权利; -
--s
- 当设置SUID
或SGID
位时,所有者的SUID
显示在字段中,而组的SGID
显示在字段中; -
--t
- 设置了 sticky-bit,这意味着用户不能删除这个文件。
更改 Unix/Linux 系统中的文件权限
chmod
是一个更改模式命令,用于更改文件或目录的权限。chmod
的两种使用方式是符号模式和绝对模式。
在符号模式下使用 chmod
符号模式是学习者调整文件或目录权限最直接的方法。
使用下表中的运算符,你可以添加、删除或指定你想要的具有符号权限的权限集。
chmod 运算符 |
描述 |
---|---|
+ |
指定的权限被添加到文件或目录。 |
- |
删除文件或目录的指定权限。 |
= |
设置指定用户的权限。 |
让我们看一个例子。在测试中运行 ls -l
时,你会看到权限如下:
$ ls -l test
输出:
-rw-rw-r-- 1 user user 0 Jan 14 01:00 test
然后在测试中运行上表中的每个示例 chmod
命令,然后运行 ls -l
以查看权限更改。
$ chmod o+wx test
$ ls -l test
这里,o
表示其他用户,w
表示写入,x
表示执行。 +
用于将指定的权限添加到 test
文件。
输出:
-rw-rw-rwx 1 user user 0 Jan 14 01:00 test
我们可以看到上面两个输出的差异。 -rw-rw-r--
更改为 -rw-rw-rwx
。上述命令为其他用户添加了 rw
权限。
在 Linux 中更改组和所有者
当他们在 Unix 上创建一个帐户时,每个用户都会被赋予一个所有者 ID 和一个组 ID。以上所有权限也是根据所有者和组分配的。
更改组和所有者主要有两个命令。
-
chown
:chown
命令,代表change owner
,用于更改文件的所有者。 -
chgrp
:chgrp
命令,代表change group
,用于更改文件的组。
使用的权限组是:
-
u
– 所有者 -
g
- 组 -
o
- 其他 -
a
- 所有用户
在 Linux 中更改所有权命令
chown
命令用于更改文件的所有权。
以下是基本语法:
$ chown [name] [filename]
系统用户的名称或系统用户的用户标识(UID)可以作为用户的值。
同样,要更改文件的组所有者:
$ chgrp [group_name] [filename]
在 Linux 的绝对模式下使用 chmod
文件权限也可以用数字代码更改。接入方式的等效数字代码如下:
数字 | 访问模式 |
---|---|
0 |
--- |
1 |
-x |
2 |
-w- |
3 |
-wx |
4 |
r- |
5 |
r-x |
6 |
rw- |
7 |
rwx |
例如,chmod 711 filename
授予所有者所有权限,而所有其他用户仅授予执行权限。
让我们看看文件 testfile
的权限。
$ ls -l testfile
输出:
-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile
现在,使用带有 chmod
的数字代码。
$ chmod 711 testfile
$ ls -l testfile
输出:
-rwx--x--x 1 user user 0 Jan 14 01:00 testfile
如输出所示,文件权限已更改。
相关文章
如何在 CentOS 中获取 IP 地址
发布时间:2023/05/04 浏览次数:108 分类:操作系统
-
这篇简短的文章是对 CentOS 的一个简短介绍,然后简要讨论了我们如何使用命令行界面 (CLI) 在 CentOS 中获取服务器 IP 地址。
在 Linux 中更新 YUM
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。
在 Linux 中安装 Deb 文件
发布时间:2023/05/04 浏览次数:130 分类:操作系统
-
本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。
Linux 中的 lsof 命令
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。
Linux 解决不能执行二进制文件问题
发布时间:2023/05/04 浏览次数:187 分类:操作系统
-
在本文中,我们将学习如何在 Linux 中执行二进制文件。 如果 Linux 无法执行二进制文件,我们还将学习如何解决错误。
Linux 中错误 Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error
发布时间:2023/05/04 浏览次数:145 分类:操作系统
-
本文介绍如何在 Linux 中解决 mesg: ttyname failed: inappropriate ioctl for device 错误。在 Linux 中,这个错误是由于默认的 vagrant 配置 config.ssh.shell 与 bash -l 交互导致的。
Linux 中的 ps aux 命令
发布时间:2023/05/04 浏览次数:69 分类:操作系统
-
本篇文章将讨论 Linux 中的 ps aux 命令。如果将 aux 快捷方式与 ps 命令一起使用,它将显示用户需要的最多信息,并可以为您提供系统运行进程的当前状态。
Linux 中的 NTP
发布时间:2023/05/04 浏览次数:137 分类:操作系统
-
本篇文章将讨论 Linux 中的 ntp。NTP 是大多数 IT 基础设施使用的核心协议。 使用它的目的是同步日期和时间信息。
在 Bash 中创建进度条
发布时间:2023/05/04 浏览次数:164 分类:操作系统
-
这是有关在 Bash 中创建进度条以显示正在运行的命令或进程的进度的指南。本文将探讨在 Bash(Linux 和 macOS 的默认 shell)中向 shell 脚本添加进度条的几种方法。使用 pv 命令在 Bash 中创建进度条