用戶的權限管理

用戶的權限管理:

 1, 普通權限

 2,特殊權限

 3,文件的特殊屬性

 4,FACL權限機制





普通權限:

 

進程安全上下文:

 1,判斷進程的所者是否爲想要操作的文件的屬主,若是,就按照屬主的權限進行授權,若不是,就轉到第二條。

 2,判斷進程的所有者是否爲想要操作的文件的屬主中的成員,如果是,就按照屬主的權限進行授權,如果不是,轉第三條。

 3,按照其他用戶的權限進行授權。

權限的構成:

NODE:使用權

   r:可讀

   w:可寫

   x:可執行

目錄:

  r:可使用ls命令獲得其中所有文件名的列表:ls-l命令來獲取目錄文件的詳細的屬性信息,也不能使用cd命令進入其中,也不能在路徑中引用該目錄。

  w:可以修改此目錄的文件名或文件名列表,即:可以在目錄中創建修改或刪除文件名。

  X:可以使用ls -l命令來獲取其中文件的詳細信息,也可以在路徑中引用該目錄,也可以使用cd命令來進入其中

注意:X目錄

文件:

  r:可以查看或獲取該文件存放的數據

  w:可以修改文件中的數據

  x:可以將此文件發起運行爲進程

ls -l <--> ll

-rw-r--r--:三個權限位—屬主,屬組,其他用戶

 屬主權限:rw-

 屬組權限:r--

其他用戶權限:r--

權限標識三元組:

--- 000  0

--x 001  1

-w-010  2

-wx011  3

r--100   4

r-x101   5

rw-110   6

rwx111   7

注意:文件的執行權限對於Linnux的文件系統來說,非常重要的安全的標識,因爲文件一旦具備執行權限,意味着該文件可以被髮起執行爲進程。所以,默認情況下,文件都不具備執行權限。

 

注意:只有某個文件的屬主才能修改文件的使用權(root除外)

 

修改文件的使用權限:

  chmod--> change file mode bits

 

 

 chmod [OPTION]... MODE[,MODE]... FILE...

 

 chmod [OPTION]... OCTAL-MODE FILE...

 

  如果使用八進制數字標識法,則每次必須給足所有權限位。如果給的權限位不完整,文件系統會自動補足,將給定的權限放置在右側,左側使用0來補。

 chmod [OPTION]... --reference=RFILE FILE...

 

Chmod --reference=a b

選項:

-R:將目標目錄中的文件及目錄和子目錄的文件統一設置爲指定的權限標識。

 

Mode:符號權限標識法

U,g,o,a 表示所有權

+ - = 表示授權方式

 +:在原有權限基礎上添加新的權限

 -:-------------------------去除----------

 =:不考慮原有權限,直接將權限設置爲目標權限

r w x表示具體權限內容

 

例子:

Chmod u+w file

Chmod g+rw file

Chmod u+x g-wx file

Chmod ug-x

Chmod +x  默認的爲a添加執行權限

Chmod +w 默認的只爲屬主

 

 

 

 

  

 

 OWNERSHIP:所有權

   屬主:資源掌控的某個特定用戶  owner u

   屬組:資源掌控的某些特定用戶  group g

   其他用戶:未曾掌控資源的那些用戶 other o

 

  全部用戶:all ,a

  

Chown:可以修改文件的屬組和屬主

chown [OPTION]... [OWNER][:[GROUP]] FILE...

   Chown owner file

   Chown :group file

   Chown owner: file   :將目標文件的屬主改爲OWNER,同時將屬組改爲OWNER的基本組

   Chown owner:group file   :將目標文件的屬組和屬主修改爲GROUP和OWNNER

-R  :將目標目錄中的文件及目錄和子目錄的文件統一設置爲指定的所有權

注意:修改OWNERSHIP操作只有超級用戶ROOT可以完成

 

chown [OPTION]... --reference=RFILE FILE...

 

Chgrp:只能修改文件的屬組

 chgrp [OPTION]... GROUP FILE...

 chgrp [OPTION]... --reference=RFILE FILE...

 

 

Install命令

 安裝:複製文件::爲文件賦予執行權限

 

       install [OPTION]... [-T] SOURCE DEST  單源複製

       install [OPTION]... SOURCE... DIRECTORY   多源複製

       install [OPTION]... -t DIRECTORY SOURCE...

       install [OPTION]... -d DIRECTORY...

常用選項:

   -m, --mode=MODE  指定目標文件的權限,默認爲755

   -o, --owner=OWNER  設定目標文件的屬主,只能是ROOT可用

 

   -g, --group=GROUP  設定目標文件的屬組,僅ROOT可用

 

注意:install命令不能複製目錄,即其源不能爲目錄,如果其源爲目錄,則install經歷了會進入目錄,依次複製其中的所有非目錄文件到目標位置

 

mktemp命令:

  一般來講,臨時文件都會創建在/tmp或/var/

/tmp目錄中,無需手動刪除,系統會定期自動刪除這兩個目錄中的文件

選項:

 -d, --directory   可以創建臨時目錄



特殊權限:


SUID, SGID, STICKY

默認情況下,用戶發起執行一個進程,該進程屬主是其發起者,也就是說,該進程是以其發起者身份在運行。

SUID:

  功能作用:用戶發起執行一個進程時,該程序文件如果擁有SUID權限的話,那麼此程序發起的進程其屬主爲該程序文件的屬主,而不是其發起者。

SUID權限所顯示的位置,文件的屬主權限中的執行權限位,如果屬主本來就有執行權限,顯示爲s,否則,顯示S

 

管理文件的SUID權限:

 chmod u+|-s file

 

SGID :

  如果某個目錄對於一些用戶有寫權限並且設置看SGID權限時,則所有對此目錄有寫權限的用戶在創建新文件或目錄後,新文件的屬組不再是創建用戶的基本組,而是繼承了該目錄的屬組。

 SGID權限顯示的好位置: 文件的屬組權限中的執行權限位,如果屬組本來就執行權限,顯示爲s,否則顯示爲S。

STICKY:粘滯位:

  如果某個目錄中,有超過一個用戶可以有寫權限,則許多個 用戶都可以在該目錄中隨意創建,修改和刪除文件名;

STICKY的功能作用:

  如果上述類似的目錄設置了STICKY權限,則每個用戶依舊能夠創建和修改文件名,但每個用戶只能刪除那些屬主爲其自身的文件名;

STICKY權限的顯示位置: 在文件權限的其他用戶的執行權限位,如果原來就有執行權限,則顯示爲t,否則顯示爲T;

 

管理文件的STICKY權限:

  Chmod o+|-t file.....

 

Suid  sgid  sticky

---     000

--t

-s-

-st

s--

s-t

ss-

Sst   111

 

特殊權限的另一種修改方式:

  將特殊權限對應的八進制數字放置於普通權限八進制數字前面即可

例如: 要給某個目錄加上粘滯位

Chmod 1755 DIRECTORY

 

umask

  權限遮罩碼:在創建文件或目錄時默認的權限生成標準

 

Root: 0022

  不考慮特殊權限位

   對於創建的文件或目錄,不遮擋屬主的任何權限,遮住的屬組的寫權限和其他用戶的寫權限;

  理解遮罩碼:

把遮罩碼的值變爲二進制,凡是有1的位置,其權限在創建文件時,就不設置;

0033  000011011 --------110100100   644

                     -------111100100  744

默認情況下,文件的遮罩碼已經有了一個0111,在此基礎之上再次應用umask來遮罩權限。



文件的特殊屬性:



  

查看文件的特殊屬性:

   lsattr: lsattr - list file attributes on a Linux second extended file system

   lsattr [ -RVadv ] [ files...  ]

修改設置文件的特殊屬性:

 chattr - change file attributes on a Linux file system

 

 chattr [ -RVf ] [ -v version ] [ mode ] files...

mode:會使用+-=來設置

整個chattr命令最關鍵最核心的設置就是[mode]部分:

      [aAcCdDeijsStTu都是所需要的屬性:

+:在原有屬性設定的基礎上,添加新屬性

-:從原有屬性設置中移除指定的屬性

=:不考慮原有的屬性設置,直接將文件的屬性更新爲指定的屬性內容

 

a:  append:設置這個屬性的文件,其內容不能被更改和刪除,只能以追加的方式向此文件中寫數據,多數的服務器日誌類文件都會設置爲此屬性;

A:  atime  :文件的訪問時間戳:IO瓶頸,設置A屬性可以使得文件再被訪問時不更改文件的訪問時間戳,從而可以有效地防止IO瓶頸的發生。

c:設置文件是否自動壓縮後再行存儲

C:設置文件是否開啓“寫時複製”屬性

d:設置文件在使用dump進行備份的時候,不會成爲備份目標

D:設置文件在文件系統中的異步寫操作

i:設置文件不能被刪除,修改和設定鏈接關係

s:設置文件的保密性刪除,一旦設置s屬性的文件被刪除,其對應存儲設備中的使用空間會被一併收回。

u:跟s屬性相反,如果這樣的文件被刪除,則其存儲於存儲設備中的數據會被留存。

 

最常用的屬性:i和a

Chattr +i file

常用選項:

-R:遞歸的設置指定目錄中的所有文件和子目錄的屬性。



FACL權限機制:


文件的額外賦權機制:

    在原有的u,g,o權限之外,讓普通用戶能夠控制權限賦予另外的用戶和組的一種賦權機制.

  FACL有關的命令:

    getfacl:   get file access control lists

 getfacl [-aceEsRLPtpndvh] file ...

 getfacl [-aceEsRLPtpndvh] -

User:USERNAME:MODE

Group:GROUPNAME:MODE

Other::MODE

 

 

Setfacl: set file access control lists

 setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file .

 

u:USERNAME:MODE

g:GROUPNAME:MODE

MODE  一般使用符合權限標識法

 

爲用戶賦予額外權限

Setfacl -m u:username:mode file...

爲組賦予額外權限

Setfacl -m g:groupname:mode file...

撤銷用戶賦予的額外權限

Setfacl -x u:username

撤銷爲組賦予的額外權限

Setfacl -x g:groupname

注意:如果設置了FACL之後在修改目標文件的使用權限,那麼FACL中設置的條目就可能收到影響而導致與要求不服;因爲,如果真的需要設置FACL,就要在已經確定目標文件的使用權限以後再行設置

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