您好,登錄后才能下訂單哦!
Linux權限管理之特殊權限
??
? ACL(訪問控制列表)
? 用來解決用戶對權限的身份不足的問題
? 使用ACL必須要有文件系統的支持才行
? Linux平臺上,常見的支持ACL的文件系統有 ext2\ext3\ext4,JFS,XFS等
? 查看分區ACL權限是否開啟
? dumpe2fs -h 設備名 | grep "Default mount options"? ?#查看設備的默認掛載權限 (dumpe2fs 只支持ext2/3/4文件系統)
? XFS文件系統的超級快信息使用xfs_growfs命令查看
? 臨時開啟分區ACL權限
? ? mount -o remount,acl /? ?#重新掛載根分區并加入acl權限?
? 永久開啟ACL權限,修改/etc/fstab
? 查看ACL權限
? getfacl 文件名
?
范例:
[root@VM_0_8_centos home]# getfacl av
# file: av? ? ? ? ? ? ? #文件名
# owner: tony #屬主
# group: stu? ? ? ? ? ? #屬組
user::rwx? ? ? ? ? ? ? ?#屬主的權限
user:lw:r-x? ? ? ? ? ? ?#lw用戶的權限
group::rwx ? ? #屬組的權限( effective:r-x? #屬組的真正權限)
group:tgroup2:rwx #tgroup2組的權限(effective:r-x #tgroup2組的真實權限)
mask::r-x
other::---
?
ACL最大有效權限mask
? mask是用來指定最大有效權限的。給某用戶賦予的ACL權限需要和mask權限"相與"才能得到用戶的真正權限
? ? ? ?配置mask方法:
? ? ? ? ? ? setfacl -m m:權限 文件名? #設定文件的mask權限
? 設定ACL權限
? setfacl [option] acl參數 文件名
? -m :設定ACL權限
? -x :刪除指定ACL權限
? -b :刪除所有ACL權限
? -d :設定默認ACL權限
? -k :刪除默認ACL權限
? -R :遞歸設定ACL權限
? ACL參數主要由三部分組成:
? 三種身份:對應身份名:三種權限
? [u|g|o] : [用戶名|組名]:[rwx]
?
?
? 給用戶設定ACL權限:
? setfacl -m u:用戶名:相應權限 文件名
? 給用戶組設定ACL權限:
? setfacl -m g:組名:相應權限 文件名
? 范例:
? setfacl -m u:tom:rw- test.txt
? setfacl -m g:stu:rw- hello.txt
??
? ? 刪除ACL權限:
? ? setfacl -x u:用戶名 文件名? #刪除指定用戶ACL權限
? ? setfacl -x g:組名 文件名 #刪除指定用戶組ACL權限
? ? ? ? setfacl -b 文件名? ? ? ? #刪除文件的所有ACL權限
? ACL默認權限與遞歸權限
? 遞歸ACL權限
? 遞歸是父目錄在設定ACL權限時,所有的子文件和子目錄也會擁有相同的ACL權限,易導致權限溢出
設定ACL權限時 使用-R權限
遞歸權限僅能賦予目錄,不能賦予文件
遞歸權限設置時,只會對目錄下已經創建的文件和子目錄授予相同的ACL權限,此后新建的文件和子目錄
不會被授予相同的ACL權限
范例;
setfacl -m u:lw:rw -R /hello.txt
? ? 默認ACL權限
? ? 默認ACL權限的作用是如果給父目錄設定了默認的ACL權限,那么父目錄中所有新建的子文件都會繼承父目錄的ACL權限
? ? setfacl -m d:u:用戶名:權限? 文件名
-----------------------------------------------------------------------------------------------------------------------
Linux sudo 權限
root把本來只能超級用戶執行的命令賦予普通用戶執行
sudo的操作對象是系統命令
給普通用戶賦予超級用戶的權限
visudo命令
visudo命令打開的文件中給普通用戶/用戶組賦予權限的格式:
用戶名 被管理主機的地址=(可使用的身份) 授權的命令(必須是絕對路徑)
%組名? 被管理主機的地址=(可使用的身份) 授權的命令(必須是絕對路徑)
? ?普通用戶執行root用戶賦予的命令:
? ? sudo 命令的絕對路徑
Linux 文件特殊權限 (特殊權限精量少修改)
SetUID
只有可以執行的二進制程序才能設定SUID權限
命令執行者要對該程序擁有x(執行)權限
命令執行者在執行該程序時獲得該程序文件屬主的身份(在執行程序的過程中靈魂附體為文件的屬主)
SetUID權限只在該程序執行過程中有效,也就是說身份改變只在程序執行過程中有效
設定SetUID的方法
4代表SUID
? ? ? chmod 4755 文件名
? ? ? chmod u+s? 文件名
? ? 取消SetUID的方法
? ? ? ? ? chmod 0755 文件名
? ? ? ? ? chmod u-s? 文件名
危險的SetUID
關鍵目錄應嚴格控制寫權限。
用戶的密碼設置要嚴格遵守密碼三原則
對系統中默認應該具有SetUID權限的文件作一列表,定時檢查有沒有這之外的文件被設置了SetUID權限
SetGID
SetGID針對文件的作用
? ? 只有可以執行的二進制程序才能設定SGID權限
命令執行者要對該程序擁有x(執行)權限
命令執行在執行程序的時候,組身份升級為該程序文件的屬組
SetGID權限同樣只在該程序執行過程中有效,也就是說組身份改變只在程序執行過程中有效。
SetGID針對目錄的作用
普通用戶必須對此目錄擁有r和x權限,才能進入此目錄
普通用戶在此目錄中的有效組會變成此目錄的屬組
如普通用戶對此目錄擁有w權限時,新建的文件的默認屬組是這個目錄的屬組
設定SetGID
2代表SGID
chmod 2755 文件名
chmod g+s? 文件名
Sticky BIT權限(粘著位權限)
粘著位目前只對目錄有效
普通用戶對該目錄擁有w和x權限,既普通用戶可以在此目錄擁有寫入權限
如果沒有粘著位,因為普通用戶擁有w權限,所以可以刪除此目錄下所有文件,包括其他用戶建立的文件
一擔賦予了粘著位,除了root可以刪除所有文件,普通用戶就算擁有w權限,也只能刪除自己建立的文件
但是不能刪除其他用戶建立的文件。
設置粘著位
chmod 1755 目錄名
chnod o+t? 目錄名
取消粘著位
chmod 0777 目錄名
chmod o-t? 目錄名
Linux 不可改變位權限(chattr權限)
chattr命令格式
chattr [+ - =] [option] 文件或目錄名
+:增加權限
-: 刪除權限
=: 等于某權限
選項:
i:如果對文件設置i屬性,那么不允許對文件進行刪除、改名、也不能添加修改數據;如果對目錄設置i屬性,那么只能修改目錄下文件的數據,但不允許建立和刪除文件
a:如果對文件設置a屬性,那么只能在文件中增加數據,但是不能刪除也不能修改數據;如果對目錄設置a屬性,那么只允許在目錄中建立和修改文件,但是不允許刪除。
查看文件系統屬性:
lsattr
? -a :顯示所有文件和目錄
? -d :如目標是目錄,僅列出目錄本身的屬性,而不是子文件的
?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。