1. 程式人生 > >基本許可權和歸屬特殊許可權ACL許可權

基本許可權和歸屬特殊許可權ACL許可權

許可權和歸屬

訪問許可權

r 讀取:允許檢視內容-read

w 寫入:允許修改內容-write

x  可執行:允許執行和切換execute

歸屬關係

u  所有者:擁有此檔案/目錄的使用者user

g  所屬組:擁有此檔案/目錄的組 group

o  其他使用者: 除所有者,所屬組以外的使用者other

注意:當用戶對一個目錄有w許可權時,即使對此目錄下的檔案沒有w許可權,可以通過vim強制修改。!

# echo 123>> /abc/redhat.txt  //失敗許可權不夠

#vim  /abc/redhat.txt  //:wq強制儲存成功

設定基本許可權

chmod 命令

格式: chmod  [ugoa] [+-=][rwx]  檔案...

             chmod [nnn]  檔案...

常見命令選項

-R   : 遞迴修改許可權

#chmod  g+w,o-rx  /data/test     //使用字元形式改許可權

#chmod 755  /data/test               //使用數字形式改許可權

檔案或目錄的預設許可權? 為什麼檔案預設許可權是644?

一般檔案預設均不給x執行許可權,其他取決於umask設定

#umask

#umask -S

#umask 0027

建立資料夾時,直接設定許可權

mkdir -m 選項

#mkdir -m 755 udir2

歸屬控制

設定歸屬關係

chown 命令

chown  屬主  檔案...

chown  屬主:屬組    檔案...

chown   :屬組   檔案...

常用命令選項

-R :遞迴修改許可權

特殊許可權概述:疊加於許可權位的u, g, o 分組之上; 用來傳遞/設定 ,程式執行者 身份

類別 字元表示 數字表示 疊加位置
Set UID s 4 User的x 位
Set UID s 2 Group的x位
Sticky Bit t 1 Other的x位

Set UID 概述

  1. 僅對可執行的程式有意義;

2. 當其他使用者執行帶SUID標記的程式時,具有此程式屬主的身份和相應的許可權

3.  佔用屬主(User)的 x位;

4. 顯示為s 或 S ,取決於屬主是否有x許可權;

Set  GID概述

SGID 許可權

1. 對可執行的程式/目錄有效

2.  當其他使用者執行帶SGID標記的程式時, 具有程式屬組的身份和相應許可權

3. 在一個具有SGID許可權的目錄下,新建的文件會自動繼承此目錄的屬組身份。

4.  佔用屬組 Group  的 x 位

5. 顯示為s或S ,取決於屬組是否有x許可權  (小寫 s 包含有許可權)

測試:

當未設定目錄的SGID 許可權時,對於新建文件的屬組; 誰建立,誰擁有

當設定了SGID 許可權時, 對於新建文件的屬組; 上層目錄歸誰,就歸誰

#chmod  g+s  /nsdpublic/

#mkdir  /nsdpublic/nsd2

Sticky  Bit 概述

粘滯位,

1. 適用於目錄,用來限制使用者濫用寫許可權

2. 在設定了粘滯位的資料夾下,即使使用者有寫入許可權,也不能刪除或改名其他使用者文件

3. 佔用其他人(other)的 x位

4. 顯示為t 或T ,取決於是否其他人是否有x許可權

#mkdir -m 777 /stdir

#chmod o+t /stdir

#cd /stdir

# rm -rf  root.file   //無法刪除,  許可權不夠

ACL許可權概述: 

注意: EXT系列 檔案系統才支援!

ACL許可權的作用

檢視ACL許可權

getfacl 命令

格式 : getfacl  檔案或目錄

注意: 大部分文件預設不會設定任何額外的ACL策略

定義ACL控制策略

sefacl命令

格式 : setfacl  [選項]   u:使用者名稱:許可權  檔案...

             setfacl   [選項]   g:組名:許可權   檔案...

常用命令選項

-m : 定義一條ACL策略

-x : 清除指定的ACL策略

-b : 清除所有已設定的ACL策略

-R :  遞迴設定ACL策略

-d :  為目錄設定預設許可權(子文件自動繼承)

例子: 為/root 設定acl策略; 使使用者stu01具有rx許可權

#setfacl -m user:stu01:r-x  /root

#ls -ld  /root

#getfacl  /root

例子;為/acltest 設定預設許可權;其下新建的文件,使用者zengye都有rwx許可權

#setfacl  -dm user:zengye:rwx   /acltest

#setfacl -m m:r  /acltest/nfile

問題/注意:無法修改掛載點的目錄許可權

#chmod o+w  /media/    //無法更改/media的許可權;

因為光碟裝置一般不可刻錄的,所以不支援寫入;因此給掛載點設定w寫入許可權會報錯