第一節(jié) ACL權(quán)限的簡(jiǎn)介與開啟
1.ACL權(quán)限簡(jiǎn)介
解決用戶身份不足的情況下羊始,文件對(duì)用戶的權(quán)限無法分配的問題
2.查看分區(qū)ACL權(quán)限是否開啟
dumpe2fs -h /dev/sda3
#dumpe2fs命令是查詢指定分區(qū)詳細(xì)文件系統(tǒng)信息的命令,查看Default_mount_options選項(xiàng)后是否指定開啟ACL權(quán)限
選項(xiàng):
-h? ? ? 僅顯示超級(jí)塊中信息姆泻,而不顯示磁盤塊組的詳細(xì)信息
注意:是否支持ACL權(quán)限取決于文件所在的分區(qū)
3.臨時(shí)開啟分區(qū)ACL權(quán)限
mount -o remount,acl /
#重新掛載根分區(qū)荸实,并掛載加入acl權(quán)限
4.永久開啟分區(qū)ACL權(quán)限
vi /etc/fstab
UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 ?? /??? ext4? ? defaults,acl ? ?? 1 1
#加入acl
mount -o remount /
#重新掛載文件系統(tǒng)或重啟系統(tǒng)济丘,使修改生效
第二節(jié) 查看與設(shè)定ACL權(quán)限
1.查看ACL權(quán)限的命令
getfacl 文件名? ? ? ? #查看acl權(quán)限
2.設(shè)定ACL權(quán)限的命令
setfacl 選項(xiàng) 文件名
選項(xiàng):
-m? ? ? 設(shè)定ACL權(quán)限
-x? ? ? 刪除指定的ACL權(quán)限
-b? ? ? 刪除所有的ACL權(quán)限
-d? ? ? 設(shè)定默認(rèn)的ACL權(quán)限
-k? ? ? 刪除默認(rèn)的ACL權(quán)限
-R? ? ? 遞歸設(shè)定ACL權(quán)限
3.給用戶設(shè)定ACL權(quán)限
實(shí)例命令 給用戶st賦予r-x權(quán)限使用"u:用戶名:權(quán)限"格式
useradd zhangsan
useradd lisi
useradd st
groupadd tgroup
mkdir /project
chown root:tgroup /project/
chmod 770 /project
setfacl -m u:st:rx /project
4.給用戶組設(shè)定ACL權(quán)限
groupadd tgroup2
setfacl -m g:tgroup2:rwx project/
為組tgroup2分配ACL權(quán)限棚唆,使用"g:組名:權(quán)限"格式
第三節(jié) 最大有效權(quán)限和刪除ACL權(quán)限
1.最大有效權(quán)限mask
mask是用來指定最大有效權(quán)限的。如果我給用戶賦予了ACL權(quán)限冗栗,是需要和mask的權(quán)限"相與"才能得到用戶的真正權(quán)限
修改最大有效權(quán)限
setfacl -m m:rx 文件名
#設(shè)定mask權(quán)限為r-x演顾,使用"m:權(quán)限"格式
2.刪除ACL權(quán)限
setfacl -x u:用戶名 文件名? ? 刪除指定用戶的ACL權(quán)限
setfacl -x g:組名 文件名? ? ? 刪除指定用戶組的ACL權(quán)限
setfacl -b 文件名? ? ? ? ? ? 會(huì)刪除文件的所有ACL權(quán)限
第四節(jié) 默認(rèn)的ACL權(quán)限和遞歸ACL權(quán)限
1.遞歸ACL權(quán)限
遞歸是父目錄在設(shè)定ACL權(quán)限時(shí),所有的子文件和子目錄也會(huì)擁有相同的ACL權(quán)限
setfacl -m u:用戶名:權(quán)限 -R 文件名
2.默認(rèn)ACL權(quán)限
默認(rèn)ACL權(quán)限的作用是如果給父目錄設(shè)定了默認(rèn)的ACL權(quán)限隅居,那么父目錄中所有的新建的子文件都會(huì)繼承父目錄的ACL權(quán)限
setfacl -m d:u:用戶名:權(quán)限 文件名
注意:遞歸的ACL權(quán)限和默認(rèn)的ACL權(quán)限只能針對(duì)目錄進(jìn)行設(shè)定
第五節(jié) 文件特殊權(quán)限
1.SetUID的功能與條件
1)只有可以執(zhí)行的二進(jìn)制程序才能設(shè)定SUID權(quán)限
2)命令執(zhí)行者要對(duì)該程序擁有x(執(zhí)行)權(quán)限
3)命令執(zhí)行者在執(zhí)行改程序時(shí)獲得改程序文件屬主的身份(在執(zhí)行程序的過程中靈魂附體為文件屬主)
4)SetUID權(quán)限只在該程序執(zhí)行過程中有效钠至,也就是說身份改變只在程序執(zhí)行過程中有效
實(shí)例應(yīng)用
passwd命令擁有SetUID權(quán)限,所以普通用戶可以修改自己的密碼
ll /usr/bin/passwd
-rwsr-xr-x 1 root root 258980 2月 22 2012 /usr/bin/passwd
cat命令沒有SetUID權(quán)限胎源,所以普通用戶不能查看/etc/shadow文件內(nèi)容
ll /bin/cat
-rwxr-xr-x 1 root root 47976 6月 22 2012 /bin/cat
2.設(shè)定SetUID的方法
4代表SUID
chmod 4755 文件名
chmod u+s 文件名
3.取消SetUID的方法
chmod 755 文件名
chmod u-s 文件名
4.危險(xiǎn)的SetUID
關(guān)鍵目錄應(yīng)嚴(yán)格控制寫權(quán)限棉钧,比如"/" "/usr"等
用戶的密碼設(shè)置要嚴(yán)格遵守密碼三原則
減水劑
對(duì)系統(tǒng)中默認(rèn)應(yīng)該具有SetUID權(quán)限的文件作一列表,定時(shí)檢查有沒有這之外的文件被設(shè)置了SetUID權(quán)限
5.SetGID針對(duì)文件的作用
只有可執(zhí)行的二進(jìn)制文件程序才能設(shè)置SGID權(quán)限
命令執(zhí)行者要對(duì)改程序擁有x(執(zhí)行)權(quán)限
命令在執(zhí)行程序的時(shí)候涕蚤,組身份升級(jí)為該程序文件的屬組
SetGID權(quán)限同樣只在該程序執(zhí)行過程中有效宪卿,也就是說組身份改變只在程序執(zhí)行過程中有效
ll /usr/bin/locate
-rwx--s--x 1 root slocate 35612 8月 24 2010 /usr/bin/locate
ll /var/lib/mlocate/locate.db
-rwx-r---- 1 root slocate 1838850 1月 20 0429 /var/lib/locate/locate.db
#/usr/bin/locate是可執(zhí)行二進(jìn)制程序的诵,可以賦予SGID
#執(zhí)行用戶lamp對(duì)/usr/bin/lamp命令擁有執(zhí)行權(quán)限
#執(zhí)行/usr/bin/locate命令時(shí),組身份會(huì)升級(jí)為slocate組愧捕,而slocate組對(duì)/var/lib/locate/locate.db數(shù)據(jù)庫擁有r權(quán)限奢驯,所以普通用戶可以使用locate命令查詢mlocate.db數(shù)據(jù)庫
#命令結(jié)束申钩,lamp用戶的組身份返回為lamp組
6.SetGID針對(duì)目錄的作用
普通用戶必須對(duì)此目錄擁有r和x權(quán)限次绘,才能進(jìn)入此目錄
普通用戶在此目錄中的有效組會(huì)變成此目錄的屬組
若普通用戶對(duì)此目錄擁有w權(quán)限時(shí),新建的文件的默認(rèn)屬組是這個(gè)目錄的屬組
7.設(shè)定SetGID
2代表SGID
chmod 2755 文件名
chmod g+s 文件名
命令實(shí)例
cd /tmp/
mkdir dtest
chmod g+s dtest
ll -d dtest/
chmod 777 dtest
su - lamp
cd /tmp/dtest
touch abc
ll
8.取消SetGID
chmod 755 文件名
chmod g-s 文件名
9.SBIT粘著位作用
粘著位目前只針對(duì)目錄有效
普通用戶對(duì)該目錄擁有w和x權(quán)限撒遣,即普通用戶可以在此目錄擁有寫入權(quán)限
如果沒有粘著位邮偎,因?yàn)槠胀ㄓ脩魮碛衱權(quán)限,所以可以刪除此目錄下所有文件义黎,包括其他用戶創(chuàng)建的文件禾进。一旦賦予了粘著位,除了root可以刪除所有文件廉涕,普通用戶就算擁有w權(quán)限也只能刪除自己建立的文檔泻云,但是不能刪除其他用戶建立的文件
注意:一般不會(huì)將三個(gè)權(quán)限同時(shí)賦予一個(gè)文件或目錄,因?yàn)檫@樣將有權(quán)限分配未被實(shí)現(xiàn)狐蜕。
命令實(shí)例
ll /tmp/
drwxrwxrwt 3 root root 4096 12月 13 11:22 /tmp/
/tmp目錄擁有SBIT權(quán)限宠纯,因此一個(gè)普通用戶在該目錄下的文件不能被其他普通用戶刪除
10.設(shè)置與取消粘著位
設(shè)置粘著位
chmod 1755 目錄名
chmod o+t 目錄名
取消粘著位
chmod 777 目錄名
chmod o-t 目錄名
第六節(jié) 文件系統(tǒng)屬性權(quán)限chattr權(quán)限
1.chattr命令格式
chattr [+-=] [選項(xiàng)] 文件或目錄名
+:增加權(quán)限
-:刪除權(quán)限
=:等于某權(quán)限
選項(xiàng):
i:如果對(duì)文件設(shè)置i屬性,那么不允許對(duì)文件進(jìn)行刪除层释,改名婆瓜,也不能添加和修改數(shù)據(jù),如果對(duì)目錄設(shè)置i屬性贡羔,那么只能修改目錄下文件的數(shù)據(jù)廉白,但是不允許建立和刪除文件(相當(dāng)于鎖定了文件,而且對(duì)root用戶也生效)
a:如果對(duì)文件設(shè)置a屬性乖寒,那么只能在文件中增加數(shù)據(jù)猴蹂,但是不能刪除也不能修改數(shù)據(jù),如果對(duì)目錄設(shè)置a屬性楣嘁,那么只允許在目錄中建立和修改文件磅轻,但是不允許刪除(相當(dāng)于鎖定了原有數(shù)據(jù),允許新添加數(shù)據(jù))
i屬性和a屬性可以避免誤操作马澈,i屬性相對(duì)于a屬性更加嚴(yán)格瓢省。
2.查看文件系統(tǒng)屬性
lsattr 選項(xiàng) 文件名
選項(xiàng):
-a 顯示所有文件和目錄
-d 若目標(biāo)是目錄,僅列出目錄本身的屬性痊班,而不是子文件的
第七節(jié) 系統(tǒng)命令sudo權(quán)限
1.sudo權(quán)限
root把本來只能超級(jí)用戶執(zhí)行的命令賦予普通用戶執(zhí)行
sudo的操作對(duì)象是系統(tǒng)命令
2.sudo使用
visudo
實(shí)際修改的是/etc/sudoers文件
root? ALL=(ALL)? ALL
用戶名 被管理主機(jī)的地址= (可使用的身份) 授權(quán)命令 (絕對(duì)路徑)
%wheel ALL=(ALL) ALL
%組名 被管理主機(jī)的地址= (可使用的身份) 授權(quán)命令 (絕對(duì)路徑)
注意:這里的第二個(gè)字段是被管理的主機(jī)的ip地址勤婚,寫ALL代表本機(jī)
3.授權(quán)sc用戶可以重啟服務(wù)器
visudo
sc ALL= /sbin/shutdown -r now
被授予的命令寫的越詳細(xì)被賦予的權(quán)限就越小,這樣做越安全
4.普通用戶執(zhí)行sudo賦予的命令
su - sc
sudo -l? ? 查看可用的sudo命令
sudo /sbin/shutdown -r now? ? ? 普通用戶執(zhí)行sudo賦予的命令
注意:不要將類似于vim的命令通過sudo賦予普通用戶涤伐,這樣普通用戶將可以修改任何文件馒胆,這樣做是及其危險(xiǎn)的