Tak*_*kat 41
警告:更改文件和目录的权限可能有害,并可能导致您的系统无法使用。当以 root 身份在错误的路径上递归运行时,我们可能会遇到必须重新安装 Ubuntu 的情况。因此,最好不要更改 HOME 目录之外的权限,并且应尽可能避免以 root 用户身份递归运行这些命令。
Ubuntu 从 Unix 继承了权限的概念,对于文件或目录,我们可以允许或拒绝三项任务:
(遍历目录本质上意味着将其用作路径名的一部分。有关更多解释,请参阅https://unix.stackexchange.com/a/13891或https://unix.stackexchange.com/questions/21251。)
此外,对于我们授予谁的权限,我们有以下三种情况:
现在为了将这些组合排序,我们使用二进制系统,其中每个位定义一个权限。这可以最好地显示在下表中
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | | | |
w | 010 | 2 | | | |
x | 001 | 1 | | | |
=======================================================
Number
Run Code Online (Sandbox Code Playgroud)
现在,如果我们想要例如
一个)的文件(=用户)的所有者- [R EAD,w ^仪式,和e X ecute权限,
B)文件的组授予[R EAD和e X ecute权限,以及
c)所有其他人应该只有[R EAD访问。
然后生成的文件权限将是:
u g o
rwx r-x r--
Run Code Online (Sandbox Code Playgroud)
要在八进制数中获得它,例如。对于chmod
命令或当我们必须了解错误信息时,我们需要填写上表如下:
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | 4 | 4 | 4 |
w | 010 | 2 | 2 | 0 | 0 |
x | 001 | 1 | 1 | 1 | 0 |
======================================================
Numbers add to 7 5 4
Run Code Online (Sandbox Code Playgroud)
需要将每个权限号相加来汇总用户(4+2+1=7)、组(4+0+1=5)和其他(4+0+0=4)。结果数字是:
u g o
7 5 4
Run Code Online (Sandbox Code Playgroud)
我们现在有两个选项来更改权限位chmod
:
chmod u+rwx g+rx o+r filename
Run Code Online (Sandbox Code Playgroud)
或者更简单
chmod 751 filename
Run Code Online (Sandbox Code Playgroud)
两个命令都将执行相同的操作。
我们家中新创建的文件的默认权限是 664 (-rw-rw-r--)。
如果我们希望文件作为程序可执行,我们将不得不更改此权限。
请注意,我们还必须更改此可执行文件所在目录的权限。只有同时设置了文件和目录的可执行位,我们才可以将该文件作为程序运行。
当将文件复制到我们的家时,它将失去它的权限,它将被我们自己的默认权限取代(除非我们使用高级选项复制,例如存档选项)。
另请注意,文件可能会从它们的挂载点继承权限。安装选项。这在安装不支持 Unix 权限的 Windows 格式驱动器时很重要。
我们很快意识到这只是故事的一半。我们还需要整理物品。为此,每个文件或文件夹都有一个定义的所有者和一个定义的组成员身份。
每次我们创建一个文件时,我们就是一个文件的所有者,而这个文件的组也就是我们。随着ls -l
我们可以看到权限,所有权,并且从下面的例子中见到输出组:
-rw-rw-r-- 1 takkat takkat 4096 Sep 12 20:25 test
Run Code Online (Sandbox Code Playgroud)
- 我们只能更改属于我们的文件的权限、组或所有权。
如果我们不是文件所有者,我们将收到Permission denied
错误消息。只有 root 可以为所有文件更改此设置。这就是为什么我们必须sudo
在编辑不属于我们的文件的权限时使用。有两个命令可以chown
针对用户和组以及chgrp
仅针对组执行此操作。
要将文件所有权从任何人更改为用户takkat
和(可选)组,takkat
我们可以发出以下命令:
sudo chown takkat[:takkat] testfile
Run Code Online (Sandbox Code Playgroud)
只更改文件的组给takkat
我们发出
sudo chgrp takkat testfile
Run Code Online (Sandbox Code Playgroud)
阅读命令的联机帮助页以获取更多详细信息和选项。还有一个更详细的指南推荐用于进一步阅读:
还可以在这里找到一些相关问题:
Par*_*ppy 27
每个文件都拥有三个不同类别的权限:
权限意味着读取文件的权限、写入文件的权限或在脚本或程序的情况下执行文件的权限。
在 CLI 上,您可以
chown
,例如chown guillermooo
chgrp
,例如chgrp root
chmod
,例如chmod u+w filename.ext
(为文件所有者添加写入权限filename.ext
)如果您想了解有关这些工具中的每一个的更多信息,请打开一个终端并键入man [tool]
,例如man chmod
。