Linux文件权限

一、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
  • 第三部分表示要添加的权限


    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
···
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。