1. 程式人生 > >Linux裏的特殊權限之a和i

Linux裏的特殊權限之a和i

linux裏的特殊權限之a和i

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詳細顯示修改內容並打印輸出。
  失效屬性。
  激活屬性。
  = 指定屬性。 
  AAtime告訴系統不要修改對這個文件的最後訪問時間。
  SSync一旦應用程序對這個文件執行了寫操作使系統立刻把修改的結果寫到磁盤。
  aAppend Only系統只允許在這個文件之後追加數據不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性系統將只允許在這個目錄下建立和修

改文件而不允許刪除任何文件。
iImmutable系統不允許對這個文件進行任何的修改。如果目錄具有這個屬性那麽任何的進程只能修改目錄之下的文件不允許建立和刪除文件。
  D檢查壓縮文件中的錯誤。
  dNo dump在進行文件系統備份時dump程序將忽略這個文件。
  CCompress系統以透明的方式壓縮這個文件。從這個文件讀取時返回的是解壓之後的數據而向這個文件中寫入數據時數據首先被壓縮之後才寫入磁

盤。
  sSecure Delete讓系統在刪除這個文件時使用0填充文件所在的區域。
  uUndelete當一個應用程序請求刪除這個文件系統會保留其數據塊以便以後能夠恢復刪除這個文件。

example
為文件添加特殊屬性比較常用a 和 i參數
####################################################################3
aAppend 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]#

iImmutable系統不允許對這個文件進行任何的修改。如果目錄具有這個屬性那麽任何的進程只能修改目錄之下的文件不允許建立和刪除文件。

[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則所有被

復制到這個目錄下的文件其所屬的組都會被重設為和這個目錄一樣除非在復制文件時加上-ppreserve保留文件屬性參數才能保留原來所屬的群組設置

chmod 2755 example/ #設置SGID

sticky-bit對一個文件設置了sticky-bit之後盡管其他用戶有寫權限也必須由屬主執行刪除、移動等操作對一個目錄設置了sticky-bit之後存放

在該目錄下的文件僅允許其屬主執行刪除、移動等操作

chmod 1755 example/ #設置sticky-bit


Linux裏的特殊權限之a和i