1. 程式人生 > >linux基礎學習【3】

linux基礎學習【3】

特殊 權限 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】