一、Linux文件权限

 

    每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。

    利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为

    准。第一个字段由10个字符组成,如下:

        -rwxr-xr-x

    第一位表示文件类型,-表示文件,d表示目录

    2-4位表示文件所有者的权限,u权限

    5-7位表示文件所有者所属组成员的权限,g权限

    8-10位表示所有者所属组之外的用户的权限,o权限  

    2-10位的权限总和有时称为a权限

 

    以上例子中,表示这是一个文件(非目录),文件所有者具有读、写和执行的权限,

    所有者所属组成员和所属组之外的用户具有读和执行的权限而没有写的权限。

 

    二、文件权限修改----chmod

    1. 用数字表示法修改权限

    所谓数字表示法,是指将r、w和x分别用4、2、1来代表,没有授予权限的则为0,

    然后把权限相加,如下

 

 

 原始权限

 转换为数字

 数字表示法

 rwxrwxr-x

 (0b111)(0b111)(0b101)

 775

 rwxr-xr-x

 (0b111)(0b101)(0b101)

 755

 

    修改权限的例子:将文件test的权限修改为所有者和组成员具有读写的权限,其他

    人只有读权限

         chmod 664 test

 

    2. 用文本表示法修改权限

    文本表示法用4个字母表示不同的用户:

    u:所有者

    g:组成员

    o:其他成员

    a:所有人

    权限仍用r、w和x表示

 

    和数字表示法不同,文本表示法不仅可以重新指定权限,也可以在原来权限的基础上

    增加或减少权限,如下:

    =:重新制定权限

    -:对目前的设置减少权限

    +:对目前的设置增加权限

 

    例子:讲上述例子中,所有者加上执行权限,组成员减少执行权限,其他成员设置为

    执行权限,执行以下命令

    chmod u+x,g-x,o=x test

 

    注意:逗号前后不能有空格

 

    三、目录权限

    目录权限的修改和文件权限修改不同,只是四种权限代表的含义如下:

    r:可列出目录中的内容

    w:可在目录中创建、删除和修改文件

    x:可以使用cd命令切换到此目录

    -:没有任何此目录的访问权限

 

    注意:目录可以使用通配符"*"来表示目录中的所有文件,如将/test目录中的所有文件

    的权限设置为任何人都可以读写

        chmod 666 /test/*

 

    四、指定文件的默认权限掩码-----umask

    权限掩码有4个八进制的数字组成,讲现有的权限减掉权限掩码后,即可产生此文件建立

    时的默认权限。

    一般来说,新建文件的默认值是0666,新建目录的默认值是0777,如果将全线掩码设置

    为0002,则每个新建文件的默认权限为0666-0002=0664,而目录的默认权限则为775。

    可以直接输入umask命令来检查目前的默认权限掩码,或输入"umask 权限掩码"来指定默

    认权限掩码。

    用umask的方式指定默认权限掩码,可以避免添加访问权限过大的文件或目录。