Linux許可權管理

2021-08-08 20:29:52 字數 4378 閱讀 6107

1. acl許可權簡介與開啟

目前linux中只有擁有者,所屬組,其他人,給所有者和所屬組分配rwx的許可權,其他人沒有許可權,這時出現了一種情況需要給乙個使用者提供讀和執行和許可權,那麼應該怎麼做呢?

acl 是 access control list 的縮寫,稱為訪問控制列表,包含了對乙個物件或一條記錄可進行何種操作的許可權定義。

功能描述:dumpe2fs命令查詢指定分割槽詳細檔案系統資訊

語法:dumpe2fs -h /dev/sda3

-h 僅顯示超級塊中資訊而不顯示磁碟塊組的詳細資訊

注意:為檔案分配acl許可權需要它所在的分割槽支援才可以分配

使用命令後檢視default mount options中是否有acl

功能描述:重新掛載根分割槽同時加入acl許可權

語法:mount -o remount,acl /

注意:臨時生效

vim /etc/fstab

該檔案定義了儲存裝置和分割槽整合到整個系統的方式,mount 命令會讀取這個檔案,確定裝置和分割槽的掛載選項

在根分割槽的defaults預設是開啟了acl許可權的,如果電腦中的default沒有開啟acl許可權可以在defaults後面新增,acl

注意:修改了配置檔案需要重啟,載入配置檔案

2. 檢視與設定acl許可權

功能描述:檢視acl許可權

語法:getfacl 檔名

功能描述:設定acl許可權

語法:setfacl [-mxbdkr] 檔名

-m 設定acl許可權

-x 刪除指定acl許可權

-b 刪除所有acl許可權

-d 設定預設acl許可權

-k 刪除預設acl許可權

-r 遞迴設定acl許可權

例子:setfacl -m u:username:rx /project 給username使用者賦予rx許可權,格式為」u:使用者名稱:許可權」

setfacl -m g:groupname:rwx /project 給groupname組分配acl許可權

3. 最大有效許可權與刪除acl許可權通過getfacl可以得到acl相關資訊,其中存在乙個mask欄位,mask用於指定最大有效許可權,如果給使用者賦予了acl許可權,是需要和mask的許可權相與才能得到真正許可權(對擁有者無效)

功能描述:修改最大有效許可權

語法:setfacl -m m:rx /project/

功能描述:刪除指定使用者或指定組的acl許可權

語法:setfacl -x u:使用者名稱/g:組名 檔名

功能描述:刪除檔案的所有acl許可權

語法:setfacl -b 檔名

4. 預設acl許可權和遞迴acl許可權

功能描述:遞迴設定acl許可權(遞迴是父目錄在設定acl許可權時,所有現有的子檔案和子目錄檔案也會擁有相同的acl許可權)

語法:setfacl -m u:使用者名稱:許可權 -r 目錄

功能描述:如果給父目錄設定了預設acl許可權,那麼父目錄中所有新建的子檔案都繼承父目錄的acl許可權

語法:setfacl -m d:u:使用者名稱:許可權 目錄

1. setuid

只有可執行的二進位制程式才能設定suid許可權

命令的執行者需要擁有程式的執行許可權

命令執行者在執行擁有suid許可權的程式時會暫時性獲得該程式檔案的屬主身份

setuid許可權只在該程式執行過程中有效

例如普通使用者可以修改自己的密碼,但是實際上可以看到/etc/shadow的許可權是000,只有root使用者可以操作,究其原因是因為/usr/bin/passwd這個命令的所有者的許可權為rws即存在suid許可權,所以普通使用者在執行時可以通過獲得/usr/bin/passwd的所有者即root的身份,從而對/etc/shadow進行操作

功能描述:設定suid

語法:chmod 4755 檔名

uchmod u+s 檔名

注意:4代表suid,2代表sgid,1代表sbit

功能描述:取消suid

語法:chmod 755 檔名

chmod u-s 檔名

2. setgid

針對檔案時:

只有可執行的二進位制程式才能設定sgid許可權

命令執行者要對程式擁有執行許可權

命令執行在執行程式的時候,組身份公升級為該程式檔案的屬組

setgid許可權同樣只在程式執行過程中有效

針對目錄時:

普通使用者必須對此目錄擁有讀和執行許可權才能進入目錄

普通使用者在此目錄中的有效組會變成目錄的屬組

若普通使用者對此目錄具有寫許可權時,新建的檔案的缺省屬組是這個目錄的陣列,但擁有者仍然是普通使用者

普通使用者雖然對locate查詢的資料庫mlocate.db沒有讀的許可權,但是locate具有sgid的作用,使用時使用者的組身份會公升級為slocate,從而對mlocate.db具有讀的許可權

功能描述:設定/取消sgid

語法:chmod 2755/755 [目錄/檔名]

chmod g+s/g-s [目錄/檔名]

3. sticky bit粘著位

粘著位目前只對目錄有效

普通使用者對該目錄擁有寫和執行許可權

如果沒有粘著位,因為普通使用者擁有寫許可權,所以可以刪除此目錄下所有檔案,包括其他使用者建立的檔案;一旦賦予了粘著位,除了root可以刪除所有檔案,普通使用者就算擁有寫許可權也只能刪除自己建立的檔案

執行許可權:root

功能描述:設定/取消粘著位

語法:chmod 1755/755 目錄名

chmod o+t/o-t 目錄名

功能描述:設定或去除檔案系統屬性

語法:chattr [+-=] [ia] [檔案/目錄]

+ 增加許可權

- 刪除許可權

= 等於某許可權

i 如果對檔案設定,則不允許對檔案進行刪除,改名也不能新增和修改資料;如果對目錄設定,那麼只能修改目錄下檔案的資料,不能建立和刪除檔案

a 如果對檔案設定a屬性,那麼只能在檔案中增加資料(不能使用vi),不能刪除和修改資料;如果對目錄設定,那麼只允許在目錄中建立和修改檔案內容,但不允許刪除

注意:對root使用者也生效!!

功能描述:檢視檔案系統屬性

語法:lsattr [-ad] 檔名

-a 顯示所有檔案和目錄

-d 若目標是目錄,則僅列出目錄本身屬性而不是子檔案的

sudo許可權能夠使得root把本來只能超級使用者執行的命令賦予普通使用者執行,其操作物件是系統命令

語法:visudo

格式:usernmae(使用者名稱)/%groupname(組名) all(被管理主機的位址)=(all(可使用身份)) all(授權命令,使用絕對路徑)

注意:visudo實際修改的是/etc/sudoers檔案

被管理主機位址並不是指**ip,而是命令執行的位置或者說被管理的計算機,通常本機的ip或all

例子:visudo

dw all= /sbin/shutdown -r now 是dw使用者可以重啟伺服器

功能描述:使用root賦予的命令

語法:sudo 命令(絕對路徑)

例子:sudo /sbin/shutdown -r now

注意:使用sudo -l 可以檢視可用的sudo命令

Linux許可權管理

預設許可權 特殊許可權 suid 以檔案的所屬使用者身份執行而非執行檔案的使用者 sgid 以檔案所屬組身份執行 sticky 許可權 對檔案的影響 對目錄的影響 suid 以檔案的所屬使用者身份執行而非執行檔案的使用者 無 sgid 以檔案所屬組身份執行 在該目錄中建立的任意新檔案的所屬組與該目錄...

Linux許可權管理

linux許可權管理 1 檔案訪問許可權 1 檔案訪問者的分類 a 檔案和檔案目錄的所有者 u user b 檔案和檔案目錄的所有者所在的組的使用者 g group c 其它使用者 o others 2 檔案訪問許可權的種類 a 基本許可權 i.讀 r 4 read 對檔案而言,具有讀取檔案內容的許...

linux 許可權管理

linux許可權管理 1 檔案訪問許可權 1 檔案訪問者的分類 a 檔案和檔案目錄的所有者 u user b 檔案和檔案目錄的所有者所在的組的使用者 g group c 其它使用者 o others 2 檔案訪問許可權的種類 a 基本許可權 i.讀 r 4 read 對檔案而言,具有讀取檔案內容的許...