1. 程式人生 > >Linux——檔案許可權

Linux——檔案許可權

一、檔案許可權

  1. 檔案許可權存在的意義
    系統最底層安全設定方法之一
    保證檔案可以被可用的使用者做相應操作
  2. 檔案許可權的檢視
    ls  -l  file    檢視檔案許可權資訊
    ls  -ld  dir    檢視目錄許可權資訊
    在這裡插入圖片描述
    ll  file    檢視檔案許可權資訊
    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    字元裝置
    p    管道
    [2]
    檔案的許可權
    rw-|rw-|r--
    u   g   o
    u  檔案擁有者對檔案能做什麼操作
    g  檔案所有組對檔案能做什麼操作
    o  其他人對檔案能做什麼操作
    [3]
    對檔案:檔案硬連結個數(檔案內容被記錄的次數)
    在這裡插入圖片描述
    對目錄:目錄中子目錄的個數 (一般新建目錄裡都有兩個隱藏檔案. …)
    [4]檔案的所有人
    [5]檔案的所有組
    [6]
    對檔案:檔案大小
    對目錄:目錄中子檔案元資料(matedate可以理解為檔案的屬性)大小,空目錄時為6
    例:
    (1)檔案原始元資料演算法如下:其中檔名為hui,三個字母則佔三個元資料
    - |rw-rw-r--| 1 |kiosk | kiosk | 0 | Jul 21 09:18 | hui

    1+   1+    1+   1+    1+   1+    1+      3 = 10 (檔案元資料)
    (2)目錄元資料演算法如下:
    在這裡插入圖片描述
    [7]檔案的內容被修改的時間
    [8]檔案的名稱
  4. 如何改變檔案的所有人和所有組
    採用監控命令檢視檔案/目錄資訊,方便後續觀察
    在這裡插入圖片描述
    在這裡插入圖片描述
  • chown  username  file|dir   更改檔案的所有人
    在這裡插入圖片描述
  • chown  user.group  file|dir   更改所有人以及所有組
    在這裡插入圖片描述
  • chown  -R  user.group  dir   更改目錄本身以及裡面所有內容的所有人
    在這裡插入圖片描述
  • chgrp  group   file|dir    更改檔案的所有人
  • chgrp  -R  group  dir   更改目錄本身以及裡面所有內容的所有組
  1. 如何改變檔案的許可權
    (1)對許可權的理解
    |rw-rw-r--|檔案共有r w x三種許可權
  • r
    對檔案:是否可以檢視檔案中的內容 —>cat file
    對目錄:是否可以檢視目錄中有什麼子檔案或者子目錄 —> ls dir
  • w
    對檔案:是否可以改變檔案裡面記錄的字元
    對目錄:是否可以對目錄中子目錄或子檔案的元資料進行更改
  • x
    對檔案:是否可以通過檔名稱呼叫檔案內記錄的程式
    對目錄:是否可以進入目錄
    (2)rwx許可權的數字表示方式
    r=2^2=4
    w=2^1=2
    x=2^0=1
    例:
    r-x|r--|--x
    5   4   1
    即:
    7=rwx
    6=rw-
    5=r-x
    4=r- -
    3=-wx
    2=-w-
    1=- -x
    0=- - -
    rwxrwxrwx滿許可權即表示為777
    (3)更改方式
    格式:chmod  <u|g|o><+|-|=><r|w|x>  file|dir
  • chmod  u-r  westos/file1  file1所有人去掉r許可權 
    檔案原始資訊如下:
    在這裡插入圖片描述
    許可權修改後效果如下:
    在這裡插入圖片描述
  • chmod  g-r  /mnt/file2     file2所有組去掉r許可權
  • chmod  ug-r  /mnt/file3    file3所有人所有組去掉r許可權
  • chmod  u-r,g+x  /mnt/file4   file4所有人去掉r許可權,所有組新增x許可權
  • chmod  o=rx  /mnt/file6     file6其他人許可權設定為r-x
  • chmod  655  westos/file1    file1許可權設定為rw-r-xr-x
    在這裡插入圖片描述
  1. 系統預設許可權的設定(umask)
  • 設定意義:
  • 從系統存在角度來說,開放權力越大,系統存在意義越高
  • 從系統安全形度來說,開放權力越少,系統安全性越高
  • 所以系統設定新建檔案或目錄,往往不是滿許可權,這是因為系統對檔案和目錄有預留的許可權值
  • 設定方式:
  • umask      系統建立檔案時預設保留的權力
    一般預設保留權力為022,則賦予的權力就是777-022=755(對目錄), 755-111=644(對檔案)
  • umask   077   臨時設定系統預留許可權為077,關閉shell後則設定不保留
    在這裡插入圖片描述
  • 永久更改umask
  • 第一步:修改系統配置檔案vim /etc/profile  
     在這裡插入圖片描述
    在這裡插入圖片描述
  • 修改shell配置檔案vim /etc/bashrc   
     在這裡插入圖片描述
    在這裡插入圖片描述
    注意:以上兩個檔案的umask值修改要一致
  • 執行source命令讓更改立即生效
    source /etc/profile
    source /etc/bashrc
    在這裡插入圖片描述
  1. 特殊許可權
  • sticky   粘制位(t許可權,t=1)
    作用:只針對目錄生效,當一個目錄上有sticky許可權時在這個目錄中的檔案只能被檔案的所有者刪除
    設定方式
    chmod  o+t  dir
    chmod  1xxx   dir
  • sgid  強制位(g許可權,g=2)
    作用
    對檔案: 只針對與二進位制可執行檔案
    當檔案上有sgid時任何人執行此檔案產成的程序都屬於檔案的的組
    對目錄
    當目錄上有sgid許可權時任何人在此目錄中建立的檔案都屬於目錄的所有組
    設定方式
    chmod  g+s   file|dir
    chmod  2xxx  file|dir
  • suid  冒險位(s許可權,s=4)
    作用
    只針對與2進位制可執行檔案
    當檔案上有suid許可權時任何人執行這個檔案中記的程式產生的程序都屬於檔案的所有人
    設定方式
    chmod  u+s   file
    chmod  4xxx  file
  1. acl許可權列表
  • 作用:讓特定的使用者對特定的檔案擁有特定許可權
  • acl列表檢視
    -rw-rwxr--+ 1 root root 0 Jul 21 15:45 file
        ^
        有“+”代表acl開啟
  • 命令:getfacl   file   檢視acl開啟的檔案的許可權
    內容如下:
    #file: file      檔名稱
    #owner: root     檔案擁有者
    #group: root     檔案擁有組
    user::rw-       檔案擁有人的許可權
    user:kiosk:rwx     指定使用者的許可權
    group::r--       檔案擁有組的權力
    mask::rwx       能賦予使用者的最大權力伐值
    other::r--       其他人的許可權
  • 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  -b  file          關閉file上的acl列表
    在這裡插入圖片描述
  • mask值
    在許可權列表中mask表示能生效的權力值(許可權掩碼)
    當用chmod命令減小開啟acl的檔案許可權時,mask值會發生改變
    例:
    ➢chmod  g-r  westos
    在這裡插入圖片描述
    恢復mask值
    ➢setfacl  -m  m:rwx  westos
    在這裡插入圖片描述
  • acl的預設許可權設定
    acl預設許可權只針對目錄設定
    ➢setfacl -m  d:u:student:rwx  /mnt/westos
    在這裡插入圖片描述
    注意:acl預設許可權只針對設定完成之後新建立的目錄生效,而已經存在的目錄是不會繼承預設許可權"
    以下是acl預設許可權設定之後新建目錄的效果圖
    在這裡插入圖片描述