linux基礎之許可權管理

2021-10-03 15:24:05 字數 4338 閱讀 7186

1.1.開啟

mount -o remount,acl   #重新掛載根分割槽,並掛載加入acl許可權

永久開啟分割槽acl許可權:

第一步:修改vim /etc/fstab在defaults後面加acl #開機自動掛載檔案

uuid=1a0b2bc7-847f-49d8-baa7-2903e818cf75 /boot ext4 defaults,acl 1 2

第二步:重啟掛載檔案mount -o remount

1.2.檢視與設定

檢視acl許可權:getfacl [檔名]

設定許可權:setfacl [-m-x-b-d-k-r] [檔名]

-m設定許可權

-x刪除指定的許可權

-b刪除所有的許可權

-d設定預設許可權

-k刪除預設許可權

-r 遞迴設定許可權

例如: setfacl -m u:acltest:rx /test1 #給使用者acltest賦予rx許可權 格式[u:使用者名稱:許可權]

設定前drwxrwx---. 2 root testgroup 6 feb 24 03:28 test1

設定後drwxrwx---+ 2 root testgroup 6 feb 24 03:28 test1

[root@miwifi-r3l-srv home]# getfacl test1

# file: test1

# owner: root

# group: testgroup

user::rwx

user:acltest:r-x

group::rwx

mask::rwx

other::---

擴充套件:給組設定acl許可權

setfacl -m g:testgroup2:rwx test2 #給組testgroup2賦予rwx許可權 格式[g:組名:許可權]

1.3最大有效許可權與刪除acl許可權

mask:是用來指定最大有效許可權的。如果設定後僅可以無視acl使用者設定的最大許可權

setfacl -m m:rx test2 #設定mask值為rx 格式[m:許可權]

刪除acl使用者許可權: setfacl -x u:使用者名稱 檔名

刪除檔案的所有acl許可權: setfacl -b 檔名

刪除acl組許可權: setfacl -x g:組名 檔名

1.4預設acl許可權與遞迴acl許可權

遞迴: setfacl -m u:使用者名稱:許可權 -r 檔名 #只給目前所有子目錄設定許可權,而新建目錄沒有許可權

預設: setfacl -m d:u:使用者名稱:許可權 檔名 #父目錄設定了acl預設許可權,以後父目錄中所有新建的子目錄都會繼承父目錄的acl許可權

2.1.setuid

root@miwifi-r3l-srv home]# ll -h /etc/shadow

----------. 1 root root 1.6k feb 24 03:39 /etc/shadow

[root@miwifi-r3l-srv home]# ll -h /bin/passwd

-rwsr-xr-x. 1 root root 35k may 11 2019 /bin/passwd

可以看到shadow檔案不具有任何許可權,而使用者修改密碼其實是修改shadow檔案又是怎麼操作呢,是因為passwd命令具有rwsr許可權

,這個s就是setuid許可權,就是可以讓普通使用者臨時化身為root許可權,從而去執行任何操作

注意:setuid的4個功能

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

命令執行者要對該程式擁有x許可權,否則設定後許可權位會以s變成s的方式來報錯

命令執行者在執行程式時獲得該程式檔案屬主的身份(root)

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

設定: chmod 4755 檔名 4代表suid

設定: chmod u+s 檔名

取消: chmod 755 檔名

取消: chmod u-s 檔名

2.2setgid

[root@miwifi-r3l-srv home]# ll /var/lib/mlocate/mlocate.db

-rw-r-----. 1 root slocate 3134543 feb 24 05:21 /var/lib/mlocate/mlocate.db

[root@miwifi-r3l-srv home]# ll /usr/bin/locate

-rwx--s--x. 1 root slocate 48552 may 11 2019 /usr/bin/locate

可以看到mlocate.db檔案的組使用者是沒有執行許可權的,組中的使用者能通過locate命令查詢的真正原因是因為locate命令

的組使用者有s許可權,這裡的s就是setgid許可權,就是可以讓組身份臨時公升級為該檔案的屬組(root組),那麼屬組的使用者就可以執行了

注意:setgid針對檔案的作用

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

命令執行著要對該程式擁有x許可權

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

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

注意:setgid針對目錄的作用

普通使用者必須對此目錄具擁有rx許可權

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

若普通使用者對此目錄擁有w許可權,新建的檔案的缺省屬組是這個目錄的屬組

設定: chmod 2755 檔名 2代表guid

設定: chmod g+s 檔名

取消: chmod 755 檔名

取消: chmod g-s 檔名

2.3sticky bit(粘著位許可權)

[root@miwifi-r3l-srv home]# ll -d /tmp/

drwxrwxrwt. 17 root root 4096 feb 24 05:18 /tmp/

可以看到臨時目錄tmp的其他使用者有t許可權,意味著所有的使用者都只能刪除自己建立的檔案而不能刪除別人建立的檔案

注意:只對目錄有效

普通使用者對該目錄擁有wx許可權

如果沒有粘著位許可權,因為普通使用者擁有w許可權,所有可以刪除此目錄下所有檔案,一旦賦予了粘著位許可權,除了root可以刪除所有有檔案

,普通使用者就算擁有w許可權,也只能刪除自己建立的檔案,但是不能刪除其他使用者建立的檔案

設定: chmod 1755 目錄名 1代表guid

設定: chmod o+t 目錄名

取消: chmod 755 目錄名

取消: chmod o-t 目錄名

語法:chattr [+-=] [-i-a] [檔案或目錄名]

+ 增加許可權

- 刪除許可權

= 等於許可權

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

-a 如果對檔案設定,則只能在檔案中增加資料,但是不能刪除和修改資料;如果對目錄設定,則只允許在目錄中建立和修改檔案,但是不允許刪除

檢視檔案系統屬性

lsattr [-a-d] 檔名

-a 顯示所有檔案和目錄

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

注意:1.root把本來只能超級使用者執行的命令賦予普通使用者執行

2.sudo的操作物件是系統命令

使用:visudo #實際是修改 vim /etc/sudoers

root all=(all) all

使用者名稱 被管理主機的位址=*(可使用的身份) 授權命令(絕對路徑)

%wheel all=(all) all

%組名 被管理主機的位址=*(可使用的身份) 授權命令(絕對路徑)

例如:sc all=/sbin/shutdown

#意思就是sc使用者可以使用root身份在本機上重啟伺服器

sudo -l #檢視root賦予自己的許可權

sc如何使用: #sudo /sbin/shutdown

Linux基礎 許可權管理

1.使用者許可權 認證 1.1 authentication 授權 authorization 審計 adition 1.2 linux使用者和組的主要配置檔案 1.3 安全上下文 程序代表使用者在進行 誰啟動了程序,程序就擁有誰的身份 以程序 process 發起者的身份執行 1.4 使用者 1....

Linux許可權管理之基本許可權

一 檔案基本許可權 1.基本許可權修改 rwxr r 檔案型別 檔案 d 目錄 l 軟鏈結檔案 rw r r u所有者 g所屬組 o其他人 r 讀 w 寫 x 執行 chmod 選項 模式 檔名 選項 r 遞迴 模式 ugoa rwx mode 421 許可權的數字表示法 r 4 w 2 x 1 例...

Linux 許可權管理之基本許可權

檔案就三個許可權 所有者許可權 組許可權 其他許可權 有時候不夠用 如某個檔案許可權是770,而想讓老王有5的許可權,但是老王不是檔案所有者和所屬組 這時候就需要acl許可權,用來解決使用者身份不夠的問題。檢視分割槽acl許可權是否開啟 dumpe2fs h dev sda5注 dumpe2fs命令...