
Linux以其强大而可靠的操作系统而闻名,它具有无与伦比的安全性、稳定性和灵活性。为了维护系统的完整性和安全性,Linux以 “权限” 的形式实现了特定设置。这些权限控制谁可以访问、修改或执行文件和目录。无论你是一个新的Linux用户还是一个经验丰富的老手,了解Linux的权限对于一个安全的系统是极其重要的。在这篇文章中,我们将深入探讨什么是Linux权限,以及如何以更佳方式保持你的文件和目录的安全。
Linux文件权限是允许用户控制谁可以访问他们的文件的特定设置。在Linux中,每个文件或目录都有一组权限,分布在三个级别的系统用户中:
这些用户中的每一个都有三种类型的文件权限,决定了用户可以执行的不同类型的操作:
现在你知道了Linux中存在哪些文件权限,让我们看看如何查看授予文件的权限。查看文件权限是非常容易的,你只需要使用这个命令:
ls -l
一旦你执行这个命令,你将看到当前位置的所有文件和目录的列表。你的输出将类似于下面的屏幕截图:

看起来很混乱?让我们试着用一个例子来理解这个问题:

在上述例子中:
- ‘表示该项目是一个文件,’ d ‘表示一个目录。
在简化了 ls-l 命令的输出后,让我们用” rwxr-xr-- “的样本权限集来展开权限部分:
rwx ‘表示文件所有者有读(r),写(w),和可执行(x)的权限。r-x ‘表示组内用户有读取(r)和可执行(x)的权限,但没有写入权限(-)。r-- ‘表示所有其他用户只有读(r)权限。最后的两个破折号表示没有权限(在这种情况下没有写和执行的权限)。因此,总的来说,前3个字符表示文件所有者的权限;第二组3个字符表示组内用户的权限,最后3个字符表示其他用户的权限。
要改变Linux中的文件权限,我们使用chmod命令,它代表了 “change mode”。使用chmod命令的基本语法是:
chmod <options> <permissions> <filename>
你可以与chmod搭配的一些命令选项是:
| 选项 | 描述 |
|---|---|
-v |
为每个被处理的文件显示诊断信息 |
-c |
与 -v 的工作原理相同,只是如果有任何改变,它只显示一个诊断信息。 |
-f |
用来抑制大多数错误信息。 |
-R |
用来递归地改变文件和目录。 |
对于<权限>部分,你可以使用两种 *** 中的任何一种:
在这种模式下,权限是用1到7的3位数的组合(也称为八进制数)来指定的。这里,之一个数字对应于文件所有者,第二个数字对应于组用户,第三个数字对应于其他用户。在绝对模式下指定权限的基本语法是::
chmod <options> <permission_combination> <file_name>
你可以使用不同的数字组合来获取权限:
| 权限类型 | 数字 |
|---|---|
| 无权限 | 0 |
| 执行 | 1 |
| 写入 | 2 |
| 写入 + 执行 | 3 (i.e. 2+1) |
| 读取 | 4 |
| 读取 + 执行 | 5 (i.e. 4+1) |
| 读取 + 写入 | 6 (i.e. 4+2) |
| 读取 + 写入 + 执行 | 7 (i.e. 4+2+1) |
让我们看一个例子,使之更容易理解。假设你想为 “test.txt” 文件的所有用户设置读、写和执行的权限,那么使用这个命令:
chmod -v 777 test.txt

这是一个在Linux系统中相当频繁使用的命令,因此,我们准备了一份详细的指南,说明在Linux中的含义。
如果你想为文件所有者设置只读权限,而对组和其他用户没有权限,你可以使用这个命令:
chmod -v 400 test.txt

绝对模式的主要问题是你总是要为所有的用户提供权限设置,即使你需要为一个用户修改。
这就是符号模式开始发挥作用的地方。符号模式是比较常用的,因为它使用字母而不是数字,大多数用户认为这很难理解。除了便于用户使用外,你还可以用符号模式只为某个特定的用户设置权限,这与绝对模式不同。在chmod中使用符号模式改变文件权限的基本语法是:
chmod <options> <user_type><symbol><permission_set> <file_name>
在上面的语法中:
在符号模式下,你可以将<user_types>指定为:
对于<permission_set>部分,你可以使用以下任一组合:
| 权限类型 | 符号 |
|---|---|
| 无权限 | — |
| 执行 | -x |
| 写入 | -w- |
| 写入 + 执行 | -wx |
| 读取 | r- |
| 读取 + 执行 | r-x |
| 读取 + 写入 | rw- |
| 读取 + 写入 + 执行 | rwx |
现在让我们看看一些例子,看看我们如何在Linux中使用符号模式设置权限。假设你想为组设置执行权限,那么使用这个命令:
chmod -v g+x test.txt

你甚至可以为不同的用户类型设置多个权限。例如,你想从其他用户类型中删除执行权限,并为文件所有者增加读、写和执行权限:
chmod o-x,u+rwx test.txt

假设你需要拥有所有的权限,但又不想与组内的用户分享权限。在这种情况下,你可以使用 chown (改变所有者)命令来改变文件所有者。改变所有者的语法非常简单:
chown <new_user_name> <filename_or_directory_name>
例如,如果你想把文件test.py的所有者改为root,你可以使用这个命令:
sudo chown root test.py

注意:为了改变文件所有者,你需要有root权限。如果你没有root权限,那么只需使用 ” sudo ” 命令来获得root权限。
如果你需要改变一个文件的组,使用 chgrp 命令:
chgrp <new_group_name> <filename_or_directory_name>
例如,如果你想把组改为test,使用 chgrp 命令:
sudo chgrp test test.txt

注意:没有两个组可以是同一个文件/目录的所有者。如果你想知道如何将一个新的用户添加到一个组,请查看我们关于的指南。
管理文件权限是最重要的,特别是在多用户环境中。通过定期检查你的Linux系统上的文件权限,你可以确保你的敏感文件保持安全,不被人窥视。我们希望这篇文章能帮助你理解这个基本概念,如果你有任何疑问,请在评论中告诉我们。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
宝塔面板中的网站管理是非常重要的一部分,也是站长经常需要使用到的功能模块。网站管理,主要用于管理和创建WEB站点。如果您是宝塔面板的使用用户,应该对此模块有充分的了解,以便于您更高效地管理网站。 宝塔面板网站管理模块包括:添加新网站、修改默认页、设置默认站点、站点列表、站点的运行与停止、备份站点、...
宝塔的数据库管理,是基于phpmyadmin管理和新建数据库。其最大的便利性就是类似,通过面板可以快速访问进行管理操作,无需单独访问phpmyadmin的主页。 此外,在宝塔面板进行数据库管理,你也对数据库名、用户名及密码等信息一目了然,及可以对数据库执行快速备份或者导入。 添加数据...
宝塔面板设置主要涉及的是宝塔控制后台自身的参数,包括诸如面板的开关、自动更新及SSL、面板端口设置等。虽然这部分不涉及服务器自身的管理,但对宝塔面板的设置也有其重要。 特别是面板端口、安全入口及面板密码等涉及安全的参数设置。 启动和关闭面板 如果你长时间无需使用到宝塔面板,可以考虑...
想成为一名网络开发人员或好奇工作的哪些子类型的薪水最高?Web开发是一个竞争激烈、多样化的行业,随着新语言和框架的出现而不断发展。 询问Web开发人员的薪水是一个难以解决的问题(尽管我们尝试)。有太多的因素需要考虑。 无论您是自由开发者还是有兴趣从事更传统的工作、喜欢前端或后端工作,或者想知...
美国劳工统计局估计在美有超过软件开发人员。根据2021年的数据,其中,这是世界上使用最广泛的五种编程语言之一。 自然,学习Java并成为Java开发人员对于任何对软件开发感兴趣的人来说都是明智的职业选择。 在本综合指南中,您将学习成为Java开发人员所需的一切知识。我们将分解您需要的技能、工...
有时似乎有太多的商业首字母缩写词要记住。随着快速变化的技术进步和云计算的出现,新的类别将不断涌现。XaaS 就是这样一个最新的补充。 该领域的大多数读者都知道、和。但是你听说过XaaS吗? XaaS(一切皆服务)涵盖了一切:现在一切都可以成为服务。 这听起来好像很复杂的样子,但别担心——我...