学习文件权限对于Linux的日常使用非常重要,文件权限适用于除FAT格式外的所有文件。
最开始需要再系统上先安装ACl,运行以下命令:
sudo apt install acl
1、权限符号
权限的符号基本上有四种,如下:
1)R read
2)W write
3)X execute
4)D directory
ps:“D”权限是一个只读的权限,无法修改。
符号权限按照“rwx”的顺序列除,“D”最先出现因为它是一个特殊的权限。
下面给出一个三组的符号权限:
-rw-rw-r-- 1 jarret jarret 278931 Sep 22 12:30 LUbuntu2.jpeg
第一个位置是个破折号,表示这是一个针对文件的清单。接下来是针对文件所有者的权限,“rw”表示文件所有者只有读写的权限。再往后的一组权限是针对组所有者设置的,“rw”表示组所有者也只有读写权限。最后一组权限是针对其他用户设置的,“r”表示其他用户只有读取权限。“1”表示文件有1个链接。第一个“jarret”是用户所有者名称,第二个“jarret”是组所有者名称,数字“278931”是文件大小。日期和时间是文件上的时间戳。最后一项是文件的名称。
我们可以通过以下命令查看文件的权限信息:
ls -l <filename>
同学们可以自己再虚拟机上试试。
如果你的文件目录为用户和组所有者以及其他用户启用了所有权限,则符号权限的格式为:“drwxrwxrwx”。
查看符号权限的一个简单方法是使用以下命令:
stat -c %A name
2、八进制权限
权限也可以通过数字来设定,对应的规则如下:
- r – 4
- w – 2
- x – 1
所以如果一个文件只有读取权限,那么值为4.如果一个文件有读和写的权限,那么值为6。如果一个文件打开了全部的权限,那么值为7。
现在同学们应该记起来了在嵌入式实验课上为什么把一个文件烧写进开发板后要运行”chmod 777“命令了吧。
各种的权限值如下:
- 7 rwx
- 6 rw
- 5 rx
- 4 r
- 3 wx
- 2 w
- 1 x
- 0 none
如果使用八进制值,那么将会有一组三个数字。若要查看文件或文件夹权限的八进制值,请使用以下命令 :
stat -c %a name
3、默认权限
我们创建一个新文件,看一下它的默认权限是什么。运行以下命令:
touch filetest1
stat -c %A filetest1
stat -c %a filetest1
在我的Ubuntu系统中,默认值是' -rw-rw-r- '或664。因此,我的用户帐户将具有对文件的读写权限。组具有读写权限。其他用户只有读取权限。
如果想在创建文件时从默认权限中删除值,我可以使用“umask”命令。“umask”命令将从默认值中删除权限。
当前默认权限用于任何新创建的文件或文件夹。如果想删除一个新创建的文件的任何写功能,使它是只读的,我们可以使用以下命令:
umask 222
当我们创建一个文件时,我们应该只有读权限的能力。我可以删除用户、组、其他用户的全部权限通过以下命令:
umask 777
如果想查看umask的当前值,只需使用以下命令:
umask -p
我们也可以用”umask“的符号值来设定默认权限,规则如下:
- u=rwx, removes r,w or x for the user
- g=rwx, removes r, w or x for the group
- o=rwx removes r, w or x for others
4、chmod
“chmod”命令允许更改文件或文件夹的权限或模式。使用“chmod”命令还可以设置或删除执行权限。使用chmod时可以使用符号值或者八进制值。
如果想要一个文件,例如“file2”,对所有用户都具有读取功能,你可以使用以下命令:
chmod u=r,g=r,o=r file2
chmod ugo=r file2
chmod a=r file2
如果用户、组或其他用户具有相同的权限,则可以像第二个示例中那样对这些模式进行分组。您可以将两种或三种模式分组。当想要在所有三个上设置权限时,可以用' a '替换。
使用八进制的命令如下:
chmod 444 file2
如果用户、组和其他所有人都有读、写和执行权限,我们可以通过以下命令移除组和其他用户的所有权限:
chmod go= file2
如果希望从文件或文件夹中添加或删除权限,则可以使用加号(+)来添加或使用减号(-)来删除权限。
我们首先创建一个文件,命名为”file5“:
touch file5
现在,让我们使用以下命令为用户、组和其他用户添加读写权限:
chmod a=rw file5
现在让我们向用户添加execute,从组中删除写权限,并从其他用户中删除读写权限,运行以下命令:
chmod u+x,g-w,o-rw file5
使用加号(+)和减号(-)更改现有设置,使用等号(=)删除所有现有设置并添加指定的值。
到目前位置,常用到的权限命令已经讲解完,其他的部分会在其他的博客中讲解。