1. 程式人生 > >檔案屬性及許可權管理

檔案屬性及許可權管理

一、許可權檢視

1.檔案許可權檢視

      ls   -l     filename
      ll           filename

2.目錄許可權檢視
         ls     -ld      dir
         ll      -d       dir

3.屬性讀取

              -  |rw-rw-r--| 1 |kiosk | kiosk | 0 | Jul 21 09:18 | file
             [1]    [2]        [3]   [4]        [5]   [6]        [7]               [8]


[1]檔案的型別
-    ##空檔案,或者文字
d    ##目錄
l    ##軟連結
s    ##socket 套接字
b    ##block    塊裝置
c    ##字元裝置

[2]檔案的許可權
rw-|rw-|r--
 1   2   3
1.[u] 檔案擁有者對檔案能做什麼操作
2.[g] 檔案所有組對檔案能做什麼操作
3.[o] 其他人對檔案能做什麼操作

[3]對檔案:檔案硬連結個數(檔案內容被記錄的次數)
    對目錄:目錄中子目錄的個數

[4]檔案的所有人

[5]檔案所有組

[6]對檔案:檔案大小
    對目錄:目錄中子檔案元資料(matedate可以理解為檔案的屬性)大小
[7]檔案的內容被修改的時間

[8]檔案的名稱

二、改變檔案所有人與所有組

chown     使用者名稱稱     檔案 |目錄   ##更改檔案|目錄所有人

chgrp      組名稱        檔案|目錄    ##更改檔案|目錄所有組

chown     使用者名稱.組名    檔案|目錄   ##一條命令更改所以人和所有組

chown  -R  使用者        目錄    ##更改目錄本身以及目錄中的子檔案的所有人

chgrp  -R   組名        目錄    ##更改目錄本身以及目錄中的子檔案的所有組

三、更改檔案許可權

1.檔案許可權理解

   r :二進位制計算結果為4
                      對檔案:是否可以檢視檔案中的內容   --->cat file
                      對目錄:是否可以檢視目錄中有什麼子檔案或者子目錄 ---> ls dir
  w :二進位制計算結果為2
                      對檔案:是否可以改變檔案裡面記錄的字元
                      對目錄:是否可以對目錄中子目錄或子檔案的元資料進行更改
  x :  二進位制計算結果為1
                       對檔案:是否可以通過檔名稱呼叫檔案內記錄的程式
                       對目錄:是否可以進入目錄

2.更改方式

1) chmod   <u|g|o> <+|-|=><r|w|x>   file|dir  

           ###ugo表示人對檔案的讀寫許可權,rwx是可以讀寫執行的命令,把它用加減等與賦給ugo

         

     注意:在執行第二個命令的時候chmod  u+rwx g+rw /mnt/file2 由於修改了兩個位置的許可權但是中間沒有用逗號隔開,會出現報    錯。修改兩個位置中間要用“,”隔開。

2)用二進位制計算結果更改

     7=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x,0=---

      

四、檔案的預設許可權

檔案的預設許可權是沒有x的,即檔案的最大預設許可權為666(-rw-rw-rw-)

由於進入目錄和目錄的x許可權有關,故目錄的最大預設許可權為777(drwx-rwx-rwx)

1)臨時修改umask

umask                ##顯示系統預設預留許可權值

umask 077        ##臨時修改umask值

    

2)永久更改umask
step1:vim     /etc/profile                             ##系統配置檔案
              59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
              60     umask 002                            ##普通使用者的umask設定行
              61 else
              62     umask 077                           ##超級使用者的umask設定行
              63 fi

step2:vim /etc/bashrc                                  ##shell配置檔案
              70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
               71        umask 002
               72     else
               73        umask 077
               74     fi

step3:source      /etc/profile        #重新整理配置檔案,讓更改立即生效
              source     /etc/bashrc

五、特殊許可權

1.sticky             ##粘制位t=1
作用:
          只針對目錄生效,當一個目錄上有sticky許可權時
          在這個目錄中的檔案只能被檔案的所有者刪除

設定方式:
          chmod     o+t      dir
          chmod    1xxx     dir

2.sgid                    ##強制位s=2
作用
         對檔案:    只針對與二進位制可執行檔案
                             當檔案上有sgid時任何人執行此檔案產成的程序都屬於檔案的的組
         對目錄:
                           當目錄上有sgid許可權時任何人在此目錄中建立的新檔案都屬於目錄的所有組

設定方式
               chmod    g+s    file|dir
               chmod   2xxx    file|dir

3.suid                 ##冒險位=4

作用
        只針對與2進位制可執行檔案
        當檔案上有suid時任何人執行這個檔案中記的程式產生的程序都屬於檔案的所有人
    
設定方式
               chmod     u+s     file
               chmod    4xxx     file

舉例:把粘制位和冒險位一起做個實驗

        

六、acl許可權列表

1.作用:指定特定的使用者對特定的檔案擁有特殊權力                                                                                                

2.acl列表檢視

         -rw-rwx---+ 1 root root 0 Mar 28 02:39 file

                          ^
                acl許可權列表開啟

那麼這個檔案的普通許可權也在許可權列表中識別,ls -l 看到的許可權是不準確的

getfacl      file             ##檢視acl開啟的檔案的許可權

內容如下:
      file: file                       ##檔名稱
      owner: root               ##檔案擁有者
      group: root               ##檔案擁有組
      user::rw-                   ##檔案擁有人的許可權
      user:kiosk:rwx         ##指定使用者的許可權
      group::r--                  ##檔案擁有組的權力
      mask::rwx                 ##能賦予使用者的最大權力伐值
      other::r--                   ##其他人的許可權

 

3.acl列表管理

setfacl  -m u:username:rwx file    ##設定username對file擁有rwx許可權
setfacl  -m g:group:rwx    file        ##設定group組成員對file擁有rwx許可權

setfacl  -x u:username    file           ##從acl列表中刪除username
setfacl -x g:student    /mnt/file         ##在許可權列表中刪除student組的資訊

setfacl  -b   file        ##關閉file上的acl列表,"+"消失

   

4.mask值
在許可權列表中mask標示能生效的最大權力值
當設定acl列表後,如果用chmod減小檔案許可權時,mask值會發生改變

chmod g-w westos

如果要恢復mask值
setfacl -m m:rw westos

舉例:1) 更改前

          

          2)更改後

         

     #effective:---   此位置表示有效的權力

       3)恢復

      

5.acl的預設許可權設定
acl預設許可權只針對目錄設定

"acl許可權只針對設定完成之後新建立的檔案或目錄生效,而已經存在的檔案是不會繼承預設許可權"

設定預設許可權:

setfacl -m d:u:student:rwx /mnt/westos
取消:
setfacl -k /mnt/westos