美文网首页
Linux文件权限

Linux文件权限

作者: Aaron大宝剑 | 来源:发表于2020-07-19 21:03 被阅读0次

    一、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
    ···
    

    相关文章

      网友评论

          本文标题:Linux文件权限

          本文链接:https://www.haomeiwen.com/subject/zbbrkktx.html