linux文件的權限及特殊權限位


linux文件的權限及特殊權限位

文件的權限

rw-     r--    r--  
owner  group  other

普通文件

**當僅r權限作用在文件上的時候,表示用戶可以讀取該文件的內容
*當僅w權限作用在文件上的時候,表示用戶可以修改該文件的內容
當僅x權限作用在文件上的時候,沒有意義。
**當rw同時作用在文件上的時候,表示用戶可以讀寫文件
**當rx同時作用在文件上的時候,表示用戶可以讀且可以執行該文件
當wx同時作用在文件上的時候,權限與僅w相同
**當rwx同時作用在文件上的時候,用戶可以讀寫執行。

目錄

當僅r權限作用在目錄上的時候,表示用戶可以短列出查看目錄下的文件名
當僅w權限作用在目錄上的時候,沒有意義
*當僅x權限作用在目錄上的時候,表示用戶可以進入且可以訪問目錄下的文件,但不能列出文件名
當僅rw權限同時作用在目錄上的時候,權限等同於僅r權限作用在目錄
**當僅rx權限同時作用在目錄上的時候,表示用戶可以進入,可以訪問子文件,同時可以長列出文件
*當僅wx權限同時作用在目錄上的時候,表示用戶可以進入,可以訪問子文件,可以創建及刪除,但不能列出
**當rwx權限同時作用在目錄上的時候,表示用戶有完整權限
X 對於批量增加x權限時,可以跳過文件而只對目錄加x

 chmod --reference 
 -R  可以遞歸修改權限
  r:4
  w:2
  x:1

  7:rwx
  6:rw
  5:rx
  4:r
  3:wx
  2:w
  1:x     

 umask

     表示用戶創 建文件的默認權限,目錄最高777,文件最高666
     umask xxx 設置umask
     umask   查看umask
     ~/.bashrc 將umask設定保存以讓下次登錄時仍然有效
     umask -S 顯示創建目錄的默認權限

作業:

1、複製/etc/fstab文件到/var/tmp下,設置文件所有者爲wangcai讀寫權限,所屬組爲sysadmins組有讀寫權限,其他人無權限
cp /etc/fstab /var/tmp;
useradd wangcai;
groupadd sysadmins;
chown wangcai.sysadmins /var/tmp/fstab;
chmod u=rw,g=rw,o= /var/tmp/fstab

2、誤刪除了用戶wangcai的家目錄,請重建並恢復該用戶家目錄及相應的權限屬性
rm -rf /home/wangcai
mkdir -p /home/wangcai
cp cp -rf /etc/skel/.[^.]* /home/wangcai/
  • suid

    suid: 對於可執行的二進制文件作用了suid權限之後,任何人在執行該文件時,可臨時擁 有其所屬人的權限
    chmod u+s
    chmod 4777 suid

  • sgid

    sgid: 對於可執行的二進制文件作用了sgid權限之後,任何人在執行該文件時,可臨時擁 有其所屬組的權限
    對於目錄作用了sgid權限之後,任何人在該目錄下創建的文件的所屬繼承目錄的所屬組
    chmod g+s
    chmod 2777 sgid

  • sticky

    sticky:對於目錄作用了sticky之後,該目錄下的文件及子目錄,僅其所屬人和目錄的所屬 人及root才能刪除。
    chmod o+t
    chmod 1777 sticky

    • 設定文件特定屬性

    chattr +a 不可修改,可以追加,不能刪除
    chattr +i 什麼也不做,只能讀

    lsattr filename 查看文件是否有特定屬性

    • ACL 權限

    Cenots6: 新建分區默認沒有acl支持,開啓的方法.
    fdisk /dev/sda
    n回車
    回車

    • 500M 回車
      w回車
      partx -a /dev/sda 通知內核更新分區表
      mkfs.ext4 /dev/sda6
      tune2fs -l /dev/sda |grep acl
      none
      tune2fs -o acl /dev/sda6
      tune2fs -l /dev/sda |grep acl
      acl
      Centos7:無論何時都支持acl
    • 文件的權限執行順序

    owner > acl user > group acl group 誰多誰優先 > other設置
    setfacl -m u|g:username|groupname:rwx filename|dirname
    setfacl -x u|g:username|groupname filename|dirname
    setfacl -b filename |dirname
    setfacl -m m:r-x filename|dirname 或 chmod g=rx filename |dirname

      • 通過文件設置acl

      file.add 內容如下
      u:liubei:rwx
      g:shuguo:rx

      setfacl -M file.acl house/

      • 通過文件刪除acl
        file.del 內容如下
        u:liubei
        g:shuguo

      setfacl -X file.del house/

      • 默認權限
        setfacl -m d:u:liubei:rwx house
        setfacl -Rm u:liubei:rwx house
  • getfacl house
    file: .
    owner: root
    group: root
    -------------------------- setfacl -Rm u:liubei:rwx house
    user::rwx
    user:liubei:rwx
    group::r-x
    mask::rwx
    other::r--

    -------------------------setfacl -m d:u:liubei:rwx house
    default:user::rwx
    default:user:liubei:rwx
    default:group::r-x
    default:mask::rwx
    default:other::r-x

setfacl -k house/ 僅刪除默認權限

  • 實驗:包含acl權限的目錄使用打包工具備份及恢復

    1.備份
    tar -cvf house.tar house
    getfacl -R house > acl.txt
    2.還原
    tar -xvf house.tar -C /var/tmp
    cp acl.txt /var/tmp
    setfacl --restore acl.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章