linux系統允許對文件和目錄添加特殊權限位和特殊屬性,日常管理過程中和恰當的使用命令對一些關鍵文件和目錄添加相應的權限和屬性,有效的保護
系統文件。近期對這些內容作了一些整理,詳細內容如下:
1
首先看一下怎麼查看文件特殊權限屬性命令
lsattr [-adlRvV][文件或目錄...]
-a 顯示所有文件和目錄,包括以.爲名稱開頭字符的額外內建,現行目錄.與上層目錄..。
example:
[root@ser1 example]# lsattr -a *
----ia------- 1.txt
----ia------- ll
-d 顯示,目錄名稱,而非其內容。
example:
[root@ser1 example]# lsattr -d
------------- .
-R 遞歸處理,將指定目錄下的所有文件及子目錄一併處理。
example:
[root@ser1 example]# lsattr -R
----ia------- ./1.txt
----ia------- ./ll
./ll:
-v 顯示文件或目錄版本。
example:
[root@ser1 example]# lsattr -v
3271582110 ----ia------- ./1.txt
3271582111 ----ia------- ./ll
-V 顯示版本信息。
example:
[root@ser1 example]# lsattr -V
lsattr 1.39 (29-May-2006)
----ia------- ./1.txt
----ia------- ./ll
查看命令使用 -a參數比較多;
查看特殊權限位命令;
[root@ser1 example]# ll
-rwsr-sr-t 1 root root 0 07-12 14:20 1.txt
drwsr-sr-t 2 root root 4096 07-12 14:20 ll
2
修改ext2和ext3文件系統屬性(attribute),通過chattr命令修改屬性能夠提高系統的安全性,chattr命令不能護/、/dev、/tmp、/var目錄。
chattr(change attribute)
chattr [-RV][-v<版本編號>][-+=AacDdijsSu][文件或目錄]
常用參數說明:
-R:遞歸處理所有的文件及子目錄。
-V:詳細顯示修改內容,並打印輸出。
-:失效屬性。
+:激活屬性。
= :指定屬性。
A:Atime,告訴系統不要修改對這個文件的最後訪問時間。
S:Sync,一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁盤。
a:Append Only,系統只允許在這個文件之後追加數據,不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修
改文件,而不允許刪除任何文件。
i:Immutable,系統不允許對這個文件進行任何的修改。如果目錄具有這個屬性,那麼任何的進程只能修改目錄之下的文件,不允許建立和刪除文件。
D:檢查壓縮文件中的錯誤。
d:No dump,在進行文件系統備份時,dump程序將忽略這個文件。
C:Compress,系統以透明的方式壓縮這個文件。從這個文件讀取時,返回的是解壓之後的數據;而向這個文件中寫入數據時,數據首先被壓縮之後才寫入磁
盤。
s:Secure Delete,讓系統在刪除這個文件時,使用0填充文件所在的區域。
u:Undelete,當一個應用程序請求刪除這個文件,系統會保留其數據塊以便以後能夠恢復刪除這個文件。
example:
爲文件添加特殊屬性,比較常用a 和 i參數:
####################################################################3
a:Append Only,系統只允許在這個文件之後追加數據,不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修改文
件,而不允許刪除任何文件。
cd example/
chattr +a 1.txt #添加a特殊屬性;
[root@ser1 example]# lsattr -a #查看,屬性添加成功
-----a------- ./1.txt
[root@ser1 example]# echo 321 >> 1.txt #測試添加內容到文件;
[root@ser1 example]# more 1.txt
321
[root@ser1 example]# echo 456 >> 1.txt #再次添加內容到文件;
[root@ser1 example]# more 1.txt #查看文件內容;
321
456
[root@ser1 example]# echo 4 > 1.txt #寫入新內容,將原有內容清除;
-bash: 1.txt: 不允許的操作 #提示報錯!不允許修改原有內容
[root@ser1 example]# rm -rf 1.txt #刪除文件,報錯,不允許刪除文件;
rm: 無法刪除 “1.txt”: 不允許的操作
[root@ser1 example]#
i:Immutable,系統不允許對這個文件進行任何的修改。如果目錄具有這個屬性,那麼任何的進程只能修改目錄之下的文件,不允許建立和刪除文件。
[root@ser1 example]# chattr -a 1.txt #刪除a的屬性;
[root@ser1 example]# lsattr -a 1.txt #查看文件屬性,-a特殊屬性已刪除;
------------- 1.txt
[root@ser1 example]# chattr +i 1.txt #添加 i 屬性,
[root@ser1 example]# lsattr -a 1.txt #查看屬性添加成功;
----i-------- 1.txt
[root@ser1 example]# echo 789 >> 1.txt #不允許向文件內寫入信息;
-bash: 1.txt: 權限不夠
#########################################################################
3
Linux中的特殊權限
特殊權限設置:SUID、SGID和sticky-bit.下面列出了3個特殊權限的說明:
SUID:當一個設置了SUID位的可執行文件被執行時,該文件以所有者的身份運行,也就是說無論誰來執行這個文件,他都擁有文件所有者的特權,可以任意
存取該文件擁有者能使用的全部系統資源。如果所有者是root,那麼執行人就有超級用戶的特權了。
chmod 4755 example/ #設置SUID
SGID:當一個設置了SGID位的可執行文件被執行時,該文件將具有所屬組的特權,任意存取整個組所能使用的系統資源;若一個目錄設置了SGID,則所有被
複製到這個目錄下的文件,其所屬的組都會被重設爲和這個目錄一樣,除非在複製文件時加上-p(preserve,保留文件屬性)參數,才能保留原來所屬的羣組設置
。
chmod 2755 example/ #設置SGID
sticky-bit:對一個文件設置了sticky-bit之後,儘管其他用戶有寫權限,也必須由屬主執行刪除、移動等操作,對一個目錄設置了sticky-bit之後,存放
在該目錄下的文件僅允許其屬主執行刪除、移動等操作
chmod 1755 example/ #設置sticky-bit