Linux介紹---權限管理

**一,ACL權限**:
	1.ACL概述:ACLACL是用於解決用戶對文件身份不足的問題。
	![sss](https://img-blog.csdnimg.cn/20190428204559381.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzU0NjcyNQ==,size_16,color_FFFFFF,t_70)
2.開啓ACL
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/2019042821220952.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzU0NjcyNQ==,size_16,color_FFFFFF,t_70)
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20190428212231167.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzU0NjcyNQ==,size_16,color_FFFFFF,t_70)
3.ACL基本權限:
	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/  賦予遞歸ACL權限,只能賦予目錄。
      -R標示遞歸
setfacl -m d :u:aa:rwx: -R  /test  ACL默認權限。注意:默認權限只能賦予目錄。
**注意:**
	如果給目錄賦予acl權限,兩條命令都要輸入。
	遞歸與默認的區別:
		setfacl -m u:cc:rx -R soft /  只對已經存在的文件生效。
		setfacl -m d:u:aa:rwx 	-R /test 只對以後新建的文件生效。
4.最大有效權限:
	setfacl -m m:rx project / #設定mask權限爲rx。使用m權限格式。
	getfacl project/
5.刪除ACL權限。
	setfacl -x u:st /project/ #刪除指定用戶和用戶組的ACL權限。
	setfacl  -b project/ #會刪除文件的所有的ACL權限。

二 sudo授權
給普通用戶賦予部分管理員權限。
/sbin/ 在此目錄下命令只有超級管理員才能使用。
/usr/bin/
1.root 身份。
visudo 賦予普通用戶權限命令,命令執行後和vi一樣使用。
在這裏插入圖片描述
用戶名/組名:代表root給那個用戶或者用戶組賦予命令,注意組名前使用%
用戶可以用指定的命令管理指定IP地址的服務器,如果寫ALL,代表可以管理任何主機,如果寫固定IP,代表用戶可以管理指定的服務器。如果我們這裏寫本機的IP地址,不代表只允許本機的用戶使用指定命令,而代表指定的用戶也可以從任何ip地址來管理當前服務器。
可使用身份:就是把來源用戶切換成什麼身份使用,ALL代表可以切換成任意身份,這個字段可以省掉。
授權命令:代表root把什麼命令授權給普通用戶,默認是ALL,代表任何命令,這個當然不行,如果需要給那個命令授權,寫入命令名稱即可,不過需要注意一定命令寫成絕對路徑。
文件 特殊權限SetUID,setGID,Sticky BIT
1.SetUID:
只有可以執行的二進制程序纔可以設定SUID。
命令執行者要對程序擁有x權限。
命令執行者在執行程序時獲得該程序文件屬主的身份,(在執行程序的過程中靈魂附體爲文件的屬主。)
SetUID權限只在該程序執行過程中有效,也就是說身份改變只在程序執行過程中有效。
在這裏插入圖片描述
在這裏插入圖片描述
/usr/bin/passwd 命令擁有特殊權限SetUID,也就是在屬主的權限位的執行權限是s,可以這樣來理解它:當一個具有執行權限的文件設置SetUID權限後,用戶執行這個文件時將以文件所有者身份執行。/usr/bin/passwd 命令具有SetUID權限,所有者爲root(Linux中命令默認所有者都是root),也就是說當普通用戶使用passwd更改自己密碼的時候,那一瞬間突然靈魂附體了,實際上是在用passwd命令所有者root的身份執行passwd命令。root當然可以將密碼寫入/etc/shadow文件,所以普通用戶也可以修改/etc/shadow文件,命令執行完成後該身份也隨之消失。
在這裏插入圖片描述
如果取消SetUID權限,則普通用戶就不能修改自己的密碼了。
有幾點建議:
關鍵目錄應該嚴格控制寫權限。
用戶的密碼設置要求嚴格遵循密碼三原則。
對系統中默認應該具有SetUID權限的文件作一列表,定時檢查有沒有這之外的文件被設置了SetUID權限。
SetGID
1.針對文件的作用。
SGID既可以針對文件生效,也可以針對目錄生效,這和SUID明顯不同,如果針對文件SGID的含義如下:
只有可執行的二進制程序纔可以設置SGID權限。
命令執行者要對該程序擁有x權限。
命令執行者在執行程序的時候,組身份升級爲該程序文件的屬組。
SetGID權限同樣只在該程序執行過程中有效,也就是說組身份改變只在程序執行過程中有效。
文件特殊權限之Sticky BIT
Sticky BIT粘着位,也簡稱SBIT,SBIT目前僅針對目錄有效,它的作用如下:
粘着位目前只對目錄有效。
普通用戶對該目錄擁有x和w權限,即普通用戶可以在此目錄擁有寫權限。
如果沒有粘着位,因爲普通用戶擁有w權限,所以可以刪除此目錄下的所有文件,包括其他用戶建立的文件,一旦賦予粘着位,除了root可以刪除所有文件,普通用戶就算擁有w權限,也只能刪除自己建立的文件,但是不能刪除其他用戶建立的文件。
4.設定文件特殊權限
特殊權限這樣來表示:
4代表SUID
2代表SGID
1代表SBIT
文件系統屬性chattr權限
chattr[±=][選項] 文件或者目錄名。
選項:
+:增加權限。
-:刪除權限。
=:等於某權限。
i:如果對文件設置i屬性,那麼不允許對文件 進行刪除,改名,也不能添加和修改數據;如果對目錄設置i屬性,那麼只能修改目錄下文件的數據,但不允許建立和刪除文件。
a:如果對文件設置a屬性,那麼只能在文件中增加數據,但是不能刪除也不能修改數據,如果對目錄設置a屬性,那麼只允許在目錄中建立和修改文件,但是不允許刪除。
e:Linux中絕大部分的文件都默認擁有e屬性,表示該文件是使用ext文件系統進行存儲的,而且不能使用‘chattr -e’命令取消e屬性。
2查看文件系統屬性lsattr
lsattr 選項 文件名
選項:
-a:顯示所有文件和目錄。
-d:若目標是目錄,僅列出目錄本身的屬性,而不是子文件的。

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