
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系统上的文件权限,你可以确保你的敏感文件保持安全,不被人窥视。我们希望这篇文章能帮助你理解这个基本概念,如果你有任何疑问,请在评论中告诉我们。
不久前,PHP 8.0大张旗鼓地发布了。它带来了许多新特性、性能增强和变化——其中最令人兴奋的是新的JIT编译器。 技术世界总是在向前发展,PHP也是如此。 ,包含了几个令人兴奋的特性。它定于今年晚些时候于2021年11月25日发布。 在本文中,我们将详细介绍PHP 8.1将带来哪些新的东...
宝塔面板现在已经成为国内许多站长必备的服务器管理必备工具。相比直接使用SSH+FTP来管理服务器,宝塔面板可以提供可视化管理,包括文件管理、数据库管理、数据备份、SSL配置等等。 如果你希望更简单高效地管理您的网站及服务器,宝塔面板是不错的选择。下面是一些宝塔面板安装及常见问题:...
本章节主要是对宝塔面板的主界面的各个版本进行一个简单的说明。 宝塔面板主界面主要包括:服务器操作系统、服务器状态、站点信息、软件管理及网络流量几个部分。 Windows面板有部分功能未实现,其余部分与Linux面板同步。 系统操作...
宝塔面板的安全管理可以设置SSH开关、禁用PING、放行端口、屏蔽IP等相关的操作。 SSH的设置 SSH的关闭与启动,点击下图的开关,即可开启或关闭SSH远程连接。 SSH端口的修改,SSH远程连接的默认端口为22,修改端口前,请先查看该端口是否被占用。 PING命令的...
宝塔面板提供丰富的软件以一键安装,这让服务器环境搭建提供不少的便利性,站长可以根据实际需求快速编译安装以实现不同的功能需求。 软件管理,主要是宝塔提供的一些面板扩展插件。 Nginx Nginx是一个高性能的HTTP和反向代理服务器,具有轻量级、占用内存小,并发能力强等优势。 w...
PHP开发:有些人认为它是,另一些人认为它是一种过时的技术,不值得花时间学习。但是这些数字说明了什么,尤其是当您查看PHP开发人员的薪水时? 虽然肯定有许多更新、更炫、更令人兴奋的语言,但PHP仍然是后端Web开发的可靠主食,也是许多雇主仍在寻找的技能。 有兴趣自己成为PHP开发人员吗?我们...