Linux許可權管理

2021-10-10 22:57:11 字數 3919 閱讀 7408

​ 用於解決使用者對檔案身份不足的問題

​ 有乙個缺點:acl一旦遞迴之後,不可避免的會出現許可權溢位,因為遞迴時,賦予目錄的執行許可權對於目錄來說的意義只是cd命令可以執行,對於它裡面新建立的子目錄來說可以接受,但是對新建立的子檔案來說,執行許可權就是最大許可權.非常不利於管理,關於這個問題,只能通過寫指令碼來解決,沒有其他的辦法.

​ 所以非必須情況下還是chmod來賦予許可權比較安全

1.基本命令:

getfacl 檔名		查詢檔案的acl許可權
setfacl 選項 檔名		設定acl許可權

-m 設定acl許可權

-b 刪除acl許可權

-x:使用者 刪除單個使用者的acl許可權

setfacl -m u:使用者名稱:許可權 檔名

setfacl -m g:組名:許可權 檔名

例如:

setfacl  -m u:aa:rwx  /test

#給test目錄賦予aa是讀寫執行的acl許可權

setfacl -m u:cc:rx -r soft/            

-r 遞迴 (可以讓目錄下的檔案也同時擁有acl許可權)

setfacl -m d:u:aa:rwx -r /testacl 預設許可權。 注意:預設許可權只能賦予目錄

注意:如果給目錄賦予acl許可權,兩條命令都要輸入

​ 遞迴與預設的區別:

​ setfacl -m u:cc:rx-rsoft/ 只對已經存在的檔案生效

​ setfacl -md:u:aa:rwx -r /test 只對以後新建的檔案生效 其中的d是目錄的意思

2.最大有效許可權mask

[root@localhost /]# setfacl -m m:rx project/

#設定mask許可權為r-x。使用「m:許可權」格式

[root@localhost /]# getfacl project

/# file: project/

# owner: root

# group: tgroup

user::rwx

group::rwx #effective:r-x

mask::r-x

#mask許可權變為了r-x

other::---

3.刪除acl許可權
[root@localhost /]# setfacl -x u:st /project/

#刪除指定使用者和使用者組的acl許可權

[root@localhost /]# setfacl -b project/

#會刪除檔案的所有的acl許可權

給普通使用者賦予部分管理員許可權,新增和使用授權命令時必須寫絕對路徑.

風險:在授權時,一定要寫清楚賦予的具體許可權,在visudo授權時,寫的許可權越詳細,使用者擁有的許可權就越小,寫的越籠統,使用者許可權就越大,如果沒有寫清楚造成的後果是很大的.

1.root身份:

​ visudo賦予普通使用者許可權命令,命令執行後和vi一樣使用

舉個例子,比如授權使用者user1可以重啟伺服器 ,則由root使用者新增如下行:

[root@localhost ~]# visudo

user1 all=/sbin/shutdown –r now

注意這裡寫了使用者user1只能以root身份使用/sbin/shutdown -r now這乙個命令,其它的關機命令或者定時重啟它都不能實現,user1使用sudo命令的格式如下:

[root@localhost user1]$	sudo /sbin/shutdown -r now
授權user1使用者可以新增其他普通使用者

首先visudo賦予user1使用者新增使用者許可權(當然還必須有改密碼的許可權):

進入編輯模式後寫入:

%user1	all=/usr/sbin/useradd		

%user1 all=/usr/bin/passwd

但是發現乙個問題

如果就這樣賦予user1passwd許可權,它是可以修改root密碼的,這是非常危險的方法,這時就要用到正則來規避這個問題:

%user1 all=/usr/bin/passwd [a-za-z]*, !/user/bin/passwd "", !/usr/bin/passwd root
1.setuid

1)setuid的功能可以這樣理解:

2)舉例:

​ /usr/bin/passwd命令有特殊許可權setuid,它的屬主是root,也就是說在root的執行許可權位上是s。

​ 當user1設定密碼時,它會以屬主的身份執行,換言之,在user1執行/usr/bin/passwd命令改密碼時,它就變身成為了root,實際是用root的身份在執行passwd,當然在這期間root會把user1的密碼寫入影子檔案/etc/shadow(雖然它的許可權是000,但是root是超級使用者可以強制寫入),所以普通使用者也是可修改/etc/shadow。等命令執行完畢後,身份隨之消失。

3)suid的危險性

​ 如果給系統中重要的命令檔案賦予suid許可權,例如:

[root@localhost ~]# chmod u+s /usr/bin/vim 

[root@localhost ~]# ll /usr/bin/vim

-rwsr-xr-x 1 root root 1847752 4月5 2012 /usr/bin/vim

普通使用者如果有了隨意讀寫檔案內容的許可權,那將會造成極其嚴重的後果。

4)所以建議:

2.setgid

sgid與suid有相似之處,但sgid既可以針對檔案生效(有風險),又可以針對目錄生效,這和suid明顯不同。

1)如果針對檔案,sgid的含義如下:

2)針對目錄的設定

3.stickybit

ticky bit粘著位,sbit僅針對目錄有效,它的作用如下:

4.設定檔案特殊許可權

設定時加在檔案許可權的第一位例如:

root@localhost ~]# chmod 4755 ftest
四、檔案系統屬性chattr許可權

可用來限制root許可權.但實際上並不是真正的限制,root可以再改回來.

1.格式:

[root@localhost ~]# chattr [+-=] [選項] 檔案或目錄名

選項:

+: 增加許可權

-: 刪除許可權

=: 等於某許可權

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

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

e:linux中絕大多數的檔案都預設擁有e屬性。表示該檔案是使用ext檔案系統進行儲存的,而且不能使用「chattr -e」命令取消e屬性。

如果賦予a許可權的話,想往檔案裡寫東西就不能再用vi編輯器了,這時候要用echo來追加.

注意:檔案的內容是沒辦法刪除的,因為vi不可用

2.檢視檔案系統屬性: lsattr

[root@localhost ~]# lsattr 選項檔名

選項:

-a 顯示所有檔案和目錄

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

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 對檔案而言,具有讀取檔案內容的許...