天天看點

Linux之檔案通路權限管理

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之檔案通路權限管理

             删除/tmp/back.local所有可讀權限

Linux之檔案通路權限管理

             設定/tmp/back.local檔案屬主可讀可寫,屬組、其他使用者均為可讀

Linux之檔案通路權限管理

       chown:改變檔案的擁有者和群組

       文法:chown [選項]... [所有者][:[組]] FILE...

       常見選項參數

           -R:處理指定目錄以及其子目錄下的所有檔案

           --reference=<目錄或檔案> 把指定的目錄/檔案作為參考,把操作的檔案/目錄設定成參考檔案/目錄相同擁有者和群組

        示例:改變/tmp/log/log2015.log擁有者和群組為user1

Linux之檔案通路權限管理

              改變指定目錄以及其子目錄下的所有檔案的擁有者和群組

Linux之檔案通路權限管理

        chgrp:改變檔案或目錄的所屬群組,使用權限是超級使用者

        文法:chgrp [選項] [組] [FILE]

        常見參數選項

        -R:處理指定目錄以及其子目錄下的所有檔案

        -v:顯示詳細的處理資訊

        --reference=<目錄或檔案> 把指定的目錄/檔案作為參考,把操作的檔案/目錄設定成參考檔案/目錄相同擁有者和群組

        示例:改變指定目錄以及其子目錄下的所有檔案的群組

Linux之檔案通路權限管理

              通過GID改變檔案群組

Linux之檔案通路權限管理

              指定檔案改變檔案的群組

Linux之檔案通路權限管理

        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有效