1. 程式人生 > >Linux許可權管理 chattr命令、lsattr命令、sudo命令

Linux許可權管理 chattr命令、lsattr命令、sudo命令

chattr命令

chattr命令用來修改檔案系統的許可權屬性

chatrr 只有 root 使用者可以使用,用來修改檔案系統的許可權屬性,建立凌駕於 rwx 基礎許可權之上的授權。 chatrr 命令格式如下:

選項:

 選項 選項說明

+

増加許可權

-

刪除許可權

=

等於某許可權

i

如果對檔案設定屬性,那麼不允許對檔案進行刪除、改名,也不能新增和修改資料;

如果對目錄設定 i 屬性,那麼只能修改目錄下檔案中的資料,但不允許建立和刪除檔案

a

如果對檔案設定 a 屬性,那麼只能在檔案中増加資料,但是不能刪除和修改資料;

如果對目錄設定 a 屬性,那麼只允許在目錄中建立和修改檔案,但是不允許刪除檔案

e

Linux 中的絕大多數檔案都預設擁有 e 屬性,表示該檔案是使用 ext 檔案系統進行儲存的,

而且不能使用"chattr -e"命令取消 e 屬性

 

還是舉幾個例子吧。

#給檔案賦予屬性
[[email protected]

~]# touch ftest
#建立測試檔案
[[email protected] ~]# chattr +i ftest
[[email protected] ~]# rm -rf flest
rm:無法刪除"ftesr":不允許的操作
#被賦予i屬性後,root不能刪除
[[email protected] ~]# echo 111>>ftest -bash:ftest:許可權不夠
#也不能修改檔案中的資料
#給目錄賦予i屬性
[[email protected] ~]# mkdir dtest
#建立測試目錄
[[email protected] dtest]# touch dtest/abc
#再建立一個測試檔案abc
[
[email protected]
~]# chattr +i dtest/
#給目錄賦予i屬性
[[email protected] ~]# cd dtest/
[[email protected] dtest]# touch bed
touch:無法建立"bcd":許可權不夠
#dtest目錄不能新建檔案
[[email protected] dtest]# echo 11>>abc
[[email protected] dtest]# cat abc
11
#但是可以修改檔案內容
[[email protected] dtest]# rm -rf abc
rm:無法刪除"abc":許可權不夠
#不能刪除

此時,flest 檔案和 dtest 目錄都變得非常強悍,即便你是 root 使用者,也無法刪除和修改它。若要更改或刪除檔案,也必須先去掉 i 屬性才可以。命令如下:

[[email protected] ~]# chattr -i ftest
[[email protected] ~]# chattr -i dtest/


在舉個例子,演示一下 a 屬性。假設有這樣一種應用,我們每天自動實現把伺服器的日誌備份到指定目錄,備份目錄可設定 a 屬性,變為只可建立檔案而不可刪除。命令如下:

[[email protected] ~]# mkdir -p /back/log
#建立備份目錄
[[email protected] ~]# chattr +a /back/log/
#賦予a屬性
[[email protected] ~]# cp /var/log/messages /back/log/
#可以複製檔案和新建檔案到指定目錄中
[[email protected] ~]# rm -rf /back/log/messages
rm:無法刪除"/back/log/messages":不允許的操作
#但是不允許刪除

chattr 命令不宜對目錄 /、/dev/、/tmp/、/var/ 等進行設定,嚴重者甚至容易導致系統無法啟動。   lsattr 命令比較簡單,其命令格式如下:

[[email protected] ~]# lsattr 選項 檔名

選項:
  • -a:顯示所有檔案和目錄;
  • -d:如果目標是目錄,則僅列出目錄本身的屬性,而不會列出檔案的屬性;

例如:

[[email protected] ~]#lsattr -d /back/log/
-----a------e- /back/log/
#檢視/back/log/目錄,其擁有a和e屬性