在回答了我的问题并对结果进行了一些研究之后,我找到了一篇很好地解释这一切的文章。我想在这里分享本文的某些部分,以备将来参考。
查看权限
为了用于chmod
更改文件或目录的权限,您首先需要知道当前的访问方式是什么。您可以通过以下方式查看终端cd
中目录的内容,然后使用:
$ ls -l
该-l
开关很重要,因为ls
不使用它只会显示目录中文件或文件夹的名称。
以下是ls -l
在我的主目录上使用的示例:
total 128
drwxr-xr-x 2 peter users 4096 Jul 5 21:03 Desktop
drwxr-xr-x 6 peter users 4096 Jul 5 17:37 Documents
drwxr-xr-x 2 peter users 4096 Jul 5 13:45 Downloads
drwxr-xr-x 2 peter users 4096 Jun 24 03:36 Movies
drwxr-xr-x 2 peter users 4096 Jun 24 03:38 Music
drwxr-xr-x 2 peter users 4096 Jun 26 00:09 Pictures
-rw-r--r-- 1 peter users 354 Jul 6 17:15 chmodtest
列的含义
第一列是每个文件的类型:
-
表示普通文件。
d
表示目录,即包含其他文件或文件夹的文件夹。
p
表示命名管道(aka FIFO)。
l
表示符号链接。
之后的字母是权限,第一列是我们最感兴趣的。第二列是文件中有多少链接,我们可以放心地忽略它。第三列有两个值/名称:第一列(在我的示例中为“ peter”)是拥有文件的用户的名称。第二个值(示例中为“用户”)是所有者所属的组(了解有关组的更多信息)。
下一列是文件或目录的大小(以字节为单位)和信息,之后是文件或目录的最后修改日期和时间,当然还有文件或目录的名称。
权限是什么意思
前三个字母(在第一个-
或d
之后)是所有者拥有的权限。接下来的三个字母是应用于该组的权限。最后三个字母是适用于其他所有人的权限。
每组三个字母由r
w
和组成x
。r
总是在第一位置,w
总是在第二位置,x
总是在第三位置。r
是读许可,w
写许可和x
执行许可。如果-
在这些字母之一的位置使用连字符(),则表示未授予许可,如果存在该字母,则将其授予。
资料夹
对于文件夹,模式位可以解释如下:
r
(read)表示能够读取给定目录的目录,
w
(write)表示只有在设置了执行位的情况下,才能写入给定目录的目录(创建新文件,文件夹;重命名,删除现有文件,文件夹)。否则,此许可是没有意义的。
x
(执行)表示使用命令cd进入给定目录并访问该目录中的文件,文件夹的能力。
使用chmod命令更改权限
chmod
是Linux和其他类似Unix的操作系统中的命令。它允许您更改文件或目录的权限(或访问模式)。
您可以通过两种不同的方式更改权限:-基于文本-基于chmod
数字chmod
文字方式
要更改文件的权限或访问方式,我们在终端中使用chmod命令。下面是命令的一般结构:
chmod who=permissions filename
一系列字母中的谁是谁,每个字母都表示您将授予许可。它们如下:
u - The user that owns the file.
g - The group the file belongs to.
o - The other users i.e. everyone else.
a - all of the above - use this instead of having to type ugo.
权限是相同的如已经讨论的(r
,w
,和x
)。
chmod命令使我们可以使用+或-而不是=从现有集中添加和减少权限。这是上面的命令,基本上重新写权限的不同(即从改变权限r--
来rw-
,你仍然需要包括r
以及w
之后=
的chmod
命令。如果你错过了r
,它会带走r
许可作为它们用=重写。使用+和-可以通过添加或取消当前的权限集来避免这种情况)。
编号方法
chmod
也可以使用数字设置权限。
使用数字是另一种方法,它允许您同时编辑所有三个所有者,组和其他所有者的权限。代码的基本结构是这样的:
chmod xxx file/directory
其中xxx是3位数字,其中每个数字可以是1到7之间的任何数字。第一位数字适用于所有者的权限,第二位数字适用于组的权限,第三位数字适用于所有其他权限。
在此数字符号中,值r,w和x具有其自己的数字值:
r=4
w=2
x=1
要给出一个三位数的数字,您需要考虑所有者,组和用户希望拥有的权限,然后将它们的值加起来。例如,假设我想授予目录所有者读写权限和执行权限,并且我想分组以及其他所有人都具有读取权限和执行权限。我想出这样的数值:
Owner: rwx = 4+2+1=7
Group: r-x = 4+0+1=5 (or just 4+1=5)
Other: r-x = 4+0+1=5 (or just 4+1=5)
Final number = 755
$ chmod 755 filename
这等效于使用以下内容:
chmod u=rwx filename
chmod go=rx filename
大多数文件夹/目录都设置为755,以允许对所有者进行读写和执行,但拒绝对所有人进行写入,文件通常为644,允许所有者进行读写,但仅允许其他人进行读取,请参考最后注意非可执行文件缺少x权限-此处相同。