Linux之文件访问权限管理


   概述:在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

   有以下三种访问方式限制访问权限:

   只允许用户自己访问;

   允许一个预先指定的用户组中的用户访问;

   允许系统中的任何用户访问。

   同时,用户能够控制一个给定的文件或目录的访问程度。一个文件活目录可能有读(r)、写(w)及执行权限(x)。当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件。


    三种不同的用户类型访问一个目录或者文件:所有者(ownuer: u)、用户组(group: g)或其他用户(other: o)。

    所有者创建文件的用户,用户是所有用户所创建的文件的所有者,用户可以允许所在的用户组能访问用户的文件。通常,用户都组合成用户组。在这种意义上,系统内的其他所有用户就是other用户类。


     每一个用户它自身的读(r)、写(w)和执行权限(x)。

     1、权限控制访问自己的文件权限,即所有者权限。

     2、权限控制用户组访问其中一个用户的文件的权限。

     3、权限控制其他所有用户访    

     3种权限赋予用户不同类型读、写及执行权限就构成了一个有9种类型的权限组


     用-l参数的ls命令显示文件的详细信息,包括权限

    如下:

    [CENTOS@localhost ~]$ ls -lh /var/log/

总用量 1.7M

-rw-------. 1 root root 2.4K 8月  23 20:12 anaconda.ifcfg.log

-rw-------. 1 root root  30K 8月  23 20:12 anaconda.log

-rw-------. 1 root root  43K 8月  23 20:12 anaconda.program.log

-rw-------. 1 root root 145K 8月  23 20:12 anaconda.storage.log

-rw-------. 1 root root 133K 8月  23 20:12 anaconda.syslog

-rw-------. 1 root root  31K 8月  23 20:12 anaconda.xlog

-rw-------. 1 root root 117K 8月  23 20:12 anaconda.yum.log

drwxr-x---. 2 root root 4.0K 8月  23 20:24 audit

-rw-r--r--. 1 root root 2.6K 8月  25 14:27 boot.log

-rw-------. 1 root utmp  384 8月  25 04:16 btmp

drwxr-xr-x. 2 root root 4.0K 8月  23 21:55 ConsoleKit

-rw-------. 1 root root  19K 8月  25 23:53 cron

drwxr-xr-x. 2 lp   sys  4.0K 7月  24 19:09 cups


注:最前面的第2~10个字符是用来表示权限。第一个字符一般用来区分文件和目录。以下用二进制和十进制表示权限

        权限 二进制  十进制

---   000      0

--x   001      1

-w-   010      2

-wx   011      3

r--   100      4

r-x   101      5

rw-   110      6

rwx   111      7

如上面的cpus文件访问权限用十进制为

     drwxr-xr-x.  cups    十进制表示法:755


Linux命令之文件系统权限管理命令,chmod、chown,chgrp,umask(遮罩码)

     

     chmod:改变文件或目录的访问权限;该命令有两种用法:包含字母和操作符表达式设定法;包含数字的数字设定法

     语法:chmod [who] [+ | - | =] [mode] 文件名

     常用选项参数

         对象who有下述字母中的任一个或者任意组合:

         u:user,文件或目录的所有者

         g:group,文件或目录属组

         o:others,其他用户

         a:all,默认所有用户


         操作符[+ | - | =]:

         +:添加权限

         -:取消权限

         =:赋予权限

       

         [mode]下述字母的任意组合权限:

         r(可读),w(可写),x(可执行)


      示例:给/tmp/back.local文件属组添加可写权限

        Linux之文件访问权限管理_w

      

             删除/tmp/back.local所有可读权限

        Linux之文件访问权限管理_r_02

             设定/tmp/back.local文件属主可读可写,属组、其他用户均为可读

Linux之文件访问权限管理_r_03


       chown:改变文件的拥有者和群组

       语法:chown [选项]... [所有者][:[组]] FILE...

       常见选项参数

           -R:处理指定目录以及其子目录下的所有文件

           --reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组


        示例:改变/tmp/log/log2015.log拥有者和群组为user1

Linux之文件访问权限管理_权限_04

              改变指定目录以及其子目录下的所有文件的拥有者和群组

Linux之文件访问权限管理_chmod、chown_05

        chgrp:改变文件或目录的所属群组,使用权限是超级用户

        语法:chgrp [选项] [组] [FILE]

        常见参数选项

        -R:处理指定目录以及其子目录下的所有文件

        -v:显示详细的处理信息

        --reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组


        示例:改变指定目录以及其子目录下的所有文件的群组

Linux之文件访问权限管理_r_06

              通过GID改变文件群组

Linux之文件访问权限管理_x_07

              指定文件改变文件的群组

Linux之文件访问权限管理_chmod、chown_08

        umask:权限掩码,默认情况下的umask值是022(可以用umask命令查看)。umask是为控制默认权限,新建文件默认权限为644,即(6-0,6-2,6-2),新建目录默认权限为755即(7-0,7-2,7-2)

        常用的umask值及对应的文件和目录权限

        umsk(022) 目录(755)文件(644)

        umsk(002) 目录(775)文件(664)

        umsk(006) 目录(771)文件(660)

        修改umask值方法

        umask [mode]   注:此命令只对当前shell有效

        示例:修改umask为024,即对应的新建的文件和目录分别为642、753,并且只对当前shell有效

Linux之文件访问权限管理_w_09

Linux之文件访问权限管理_chmod、chown_10