Linux是一个多用户操作系统。它可以处理多个用户同时访问系统的情况。这就是为什么Linux在大型机、服务器、超级计算机等领域如此受欢迎的关键原因之一。作为一个多用户系统,拥有功能性的用户权限管理是最重要的。它是定义什么用户/组可以访问系统的什么部分的根本。
对于文件访问,这种用户权限是作为文件权限管理的。在本指南中,我们将深入了解Linux中的文件和文件夹权限。
前提条件
要理解文件和文件夹的权限,重要的是要理解几个关键概念。在本节中,我们将简要介绍每一个概念。
用户和用户组
Linux允许个人用户访问系统。任何有效的用户都可以在本地或远程连接到系统,并享有对任何资源的访问权。
如果有成百上千的用户,那么单独管理他们所有的权限是相当低效的。为了解决这个问题,Linux引入了用户组的概念。每个组可以包含一个或多个用户。改变用户组的权限将自动应用于该组内的每个用户。
检查文件和文件夹的权限
根据用户界面的类型,有两种方法可以检查一个文件夹/目录的文件权限。
使用图形用户界面检查文件权限
如果你的发行版带有一个桌面环境,那么它也可能安装了一个文件管理器。所有的文件管理器都可以检查和显示文件权限。为了演示,让我们看一下Nautilus,GNOME中的默认文件管理器。
在任何文件/文件夹上点击右键,选择 "属性"。

要检查权限,请前往 "权限 "选项卡。

使用CLI检查文件权限
这是在Linux中检查文件权限的更值得推荐的方法(尽管有点混乱)。我们将使用所有Linux发行版中预装的ls工具。
要检查文件权限,运行以下ls命令。
$ ls -l <path_to_file_dir>

如果没有指定文件位置,那么ls将打印当前目录下所有文件的信息。注意,如果是一个目录,ls可能不会打印文件的权限和信息。
例如,当试图检查目录"~/Desktop "的权限时,ls根本不会打印任何信息。
$ ls -l ~/Desktop

在这种情况下,在目标目录的父目录上运行ls。在这种情况下,它就是"~/"。
$ ls -l ~

解释文件权限
正如我们所看到的,文件权限被描述为一个由一些ASCII字符组成的字符串。这个关于Linux文件权限的指南更详细地解释了一切。在这里,我们将有一个简单的概述。
有3种权限类型:
- read*(r*) - 用户有能力读取文件内容。
- 写 (w) - 用户有能力写或修改文件或目录的内容。
- execute (x)- 用户执行文件或查看目录内容的能力。
权限字符串包含以下数据:
- 字符1:描述文件类型(目录,符号链接,setuid/setgid权限,或粘性位权限)。
- 字符2-4。描述了所有者的文件权限。
- 字符5-7。描述了文件的组权限。
- 字符8-10。描述了系统中其他所有人的文件权限。
对于文件类型,有几个不同的值:
- _ : 没有特殊权限。
- d : 目录
- l:符号链接,也被称为符号链接。
- s: setuid/setgid权限。
- t:粘性位权限。
修改文件和文件夹的权限
文件权限是很重要的数值。然而,如果有合适的权限,Linux系统中的用户可以改变文件的权限。
为了改变权限,Linux带有一个叫做chmod的内置工具。例如,要把一个脚本文件标记为可执行文件,我们要运行以下命令。
$ chmod +x <script_file>

如果你想从文件中删除 "可执行 "标志,那么命令会是这样的。
$ chmod -x <script_file>

改变文件的所有权
文件的所有者也会影响文件的权限。一般来说,它是最初创建该文件的用户。然而,不同的用户可以被指定为文件或目录的所有者。
要改变一个文件的所有权,Linux提供了一个工具chown。
最后的思考
文件权限是Linux中的一个重要概念。检查一个文件夹的文件权限是一项简单的任务。Linux提供了必要的工具来直接从命令行管理它们。本指南成功地演示了检查和修改文件和文件夹的文件权限。
祝您计算愉快!