linux基礎學習【3】
阿新 • • 發佈:2018-10-11
特殊 權限 mas 所屬組 term 執行者 col 文件的權限 系統 一.umask 命令
umask 臨時設定系統保留的權限(即創建目錄時不給予的權限)
例:umask 077 設定對當前用戶保留077權限(創立文件時賦予700權限)
配置文件說明
如圖,root用戶創建目錄A權限為755(umask=022)
student用戶創建目錄B權限為775(umask=002)
使用命令<umask 077>,創建目錄B時默認權限為700(umask=077)
註意事項:
1.使用umask命令更改僅在當前shell環境下生效
2.若需永久更改則須更改配置文件
切換環境後創建目錄C,默認權限仍為755(umask=022)
更改配置文件
###更改後不會立即生效,需重新讀取配置文件
vim /etc/profile 編輯系統配置文件
vim /etc/bashrc 編輯shell的配置文件
source /etc/profile 重讀系統配置文件,讓更改立即生效
source /etc/bashrc 重讀shell配置文件,讓更改在立即生效
二.特殊權限
1.sticky 粘制位
只針對目錄生效,當一個目錄上有sticky權限時
在這個目錄中的文件只能被文件的所有者刪除
兩種設定方式:
chmod o+t dir
chmod 1xxx dir
添加粘制位,雖然擁有pub目錄的rwx權限,但用戶st1無法刪除其他用戶的文件
2.sgid 強制位
對文件:只針對二進制可執行文件
當文件上有sgid時,任何人執行此文件產生的進程都屬於文件目錄的所有組
對目錄:當目錄上有sgid時,任何人在此目錄中建立的文件都屬於目錄的所有組
chmod g+s file/dir
chmod 2xxx file/dir
查看/bin/watch文件的元屬性
用戶st1使用watch檢測進程名稱,使用者用戶名,所在組,此時均為st1
為/bin/watch添加強制位,並且切換到其他用戶st1
重新調用watch,此時user為st1,而group變為watch文件的所屬組root
3.suid 冒險位 當文件上有sgid時,任何人執行此文件產生的進程都屬於文件所有者 chmod u+s file chmod 4xxx file
為watch添加冒險位,並以st1身份執行
以st1用戶執行watch,執行者仍為文件擁有者root
三.acl權限列表
讓特定的用戶對特定文件擁有特定權限
acl列表查看
getfacl a 查看文件a的acl權限
setfacl -m u:user:rwx a 為a文件開啟acl權限管理並為指定用戶user賦予mask:rwx權限
setfacl -m g:group:rwx a 為a目錄開啟acl權限管理並為指定組group賦予mask:rwx權限
打開acl權限的文件標誌(其中‘+’表示acl開啟)
給目錄pub添加acl權限並指定用戶st1擁有rwx權限(默認其他所有組成員為r-x)
如圖st1可在/mnt/pub寫入,而st2不可
getfacl權限說明
# file : filename 文件名為filename
# owner: root 文件所有者為root
# group: root 文件所有組為root
user::rw- 文件擁有者對文件的權限為rwx
user::username:rwx 指定用戶username對文件的權限為rwx
group::r-- 文件所有組對文件的權限為r--
mask::rwx 可賦予用戶的最大權限為rwx
other::r-- 其他用戶對文件的權限為r--
四.mask值
在權限列表中mask表示能生效的權限值(能賦予的最大權限值)
當用chmod減小開啟acl的文件權限時,mask會發生變化
chmod g-w filename
恢復mask值:
setfacl -m m:rwx filename
查看目錄pub的acl權限,雖然用戶st1有rwx權限,但mask=r-x,所以有效權限只有r-x
acl默認權限只針對目錄設定(即默認在該目錄下創建的文件繼承目錄的acl權限,未設定默認不繼承)
setfacl -m d:u:username:rwx /filename
acl權限只針對設定完成之後新建立的文件或目錄生效,而已經存在的文件時不會
先建立的a文件沒有繼承acl權限,而設定後的b文件繼承了目錄的acl權限
linux基礎學習【3】