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- 設定文件特定屬性
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:rxsetfacl -M file.acl house/
-
- 通過文件刪除acl
file.del 內容如下
u:liubei
g:shuguo
setfacl -X file.del house/
- 通過文件刪除acl
-
- 默認權限
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
linux文件的權限及特殊權限位