一、Linux用户概念
Linux中把用户分为文件所有者用户、所属组用户和其他用户。因此Linux文件的权限也就对应这三个用户身份。文件所有者是指创建文件的用户,只有自己才能读写文件,其他人不能读写文件。所属组用户就是把若干用户划分为一个群组,群组内的成员都有权限来读写文件。其他用户就是不属于前两种身份的用户。
二、文件权限
我们已经知道每个文件都有三种身份的权限限制,比如我们查看一个目录下的所有文件,如下图:
image.png可以看见所有文件的开头都是一串描述文件权限的编码。它其实分为四个部分,比如已上图oh-my-zsh为例:
image.png
-
文件类型有:
image.png -
权限说明
每组用户有3个字符分别表示读、写和执行权限,比如rwx表示有读写和执行权限。
image.png每个权限都可以用二进制表示:
1表示有该权限,0表示无该权限
因此,一个用户的权限rwx也可以用111表示,也就是八进制的7。
三、修改权限
修改权限的指令是chmod,修改方式有两种。
1、使用符号修改权限
使用方式:[ugoa][+-=][rwxXstugo]。
-
第一部分表示修改的用户:
image.png -
第二部分表示增加删减或修改权限
-
第三部分表示要添加的权限
image.png
下面是一些例子:
代码块
// 给文件所有者添加或删除执行权限
chmod u+x filename
chmod u-x filename
// 给所属组成员添加或删除读写权限
chmod g+rw filename
chmod g-rw filename
// 修改所属组成员属性
chmod g=r filename
2、使用八进制修改权限
上面提到过每项权限都可以用一位二进制数表示。对于每个身份的用户权限用3位二进制表示,比如rwx => 111,r-- => 100 ···
image.png
将每个身份的二进制转换为八进制,就能表示对每个身份用户的权限修改,比如:
// 赋予所有人读写和执行权限
chmod 777 filename
// 赋予用户所有者所有权限,所属组成员执行权限,其他用户执行权限
chmod 711 filename
// 赋予用户所有者读权限,所属组成员和其他用户无权限
chmod 400 filename
···
网友评论