chattr命令用來修改文件系統的權限屬性linux
選項:bash
選項 | 選項說明 |
+服務器 |
増加權限工具 |
-測試 |
刪除權限this |
=spa |
等於某權限.net |
i日誌 |
若是對文件設置屬性,那麼不容許對文件進行刪除、更名,也不能添加和修改數據;code 若是對目錄設置 i 屬性,那麼只能修改目錄下文件中的數據,但不容許創建和刪除文件 |
a |
若是對文件設置 a 屬性,那麼只能在文件中増加數據,可是不能刪除和修改數據; 若是對目錄設置 a 屬性,那麼只容許在目錄中創建和修改文件,可是不容許刪除文件 |
Linux 中的絕大多數文件都默認擁有 e 屬性,表示該文件是使用 ext 文件系統進行存儲的, 並且不能使用"chattr -e"命令取消 e 屬性 |
例如:
#創建測試文件 [root@localhost ~]# touch ftest #增長屬性 [root@localhost ~]# chattr +i ftest #刪除屬性 #被賦予i屬性後,root不能刪除 [root@localhost ~]# rm -rf flest rm:沒法刪除"ftesr":不容許的操做 #也不能修改文件中的數據 [root@localhost ~]# echo 111>>ftest -bash:ftest:權限不夠
#創建測試目錄 [root@localhost ~]# mkdir dtest #再創建一個測試文件abc [root@localhost dtest]# touch dtest/abc #給目錄賦予i屬性 [root@localhost ~]# chattr +i dtest/ #dtest目錄不能新建文件 [root@localhost ~]# cd dtest/ [root@localhost dtest]# touch bed touch:沒法建立"bcd":權限不夠 #可是能夠修改文件內容 [root@localhost dtest]# echo 11>>abc [root@localhost dtest]# cat abc 11 #不能刪除 [root@localhost dtest]# rm -rf abc rm:沒法刪除"abc":權限不夠
[root@localhost ~]# chattr -i ftest
[root@localhost ~]# chattr -i dtest/
#創建備份目錄 [root@localhost ~]# mkdir -p /back/log #賦予a屬性 [root@localhost ~]# chattr +a /back/log/ #能夠複製文件和新建文件到指定目錄中 [root@localhost ~]# cp /var/log/messages /back/log/ #可是不容許刪除 [root@localhost ~]# rm -rf /back/log/messages rm:沒法刪除"/back/log/messages":不容許的操做
命令格式:
[root@localhost ~]# lsattr 選項 文件名 選項:
選項:
選項 | 選項說明 |
-a |
顯示全部文件和目錄 |
-d |
若是目標是目錄,則僅列出目錄自己的屬性,而不會列出文件的屬性 |
例如:查看/back/log/目錄,其擁有a和e屬性
[root@localhost ~]# visudo …省略部分輸出… root ALL=(ALL) ALL # %wheel ALL=(ALL) ALL
這兩行是系統爲咱們提供的模板,咱們參照它寫本身的就能夠了
格式說明:
root ALL=(ALL) ALL
#用戶名 被管理主機的地址=(可以使用的身份) 受權命令(絕對路徑)
#%wheel ALL=(ALL) ALL
#%組名 被管理主機的地址=(可以使用的身份) 受權命令(絕對路徑)
用戶名/組名:表明 root 給哪一個用戶或用戶組賦予命令,注意組名加"%"。
用戶能夠用指定的命令管理指定 IP 地址的服務器。若是寫 ALL,則表明用戶能夠管理任何主機;若是寫固定 IP,則表明用戶能夠管理指定的服務器。若是咱們在這裏寫本機的 IP 地址,則不表明只容許本機的用戶使用指定命令,而表明指定的用戶能夠從任何 IP 地址來管理當前服務器。
可以使用的身份:就是把來源用戶切換成什麼身份使用,(ALL) 表明能夠切換成任意身份。這個字段能夠省略。
受權命令:表明 root 把什麼命令受權給普通用戶。默認是 ALL,表明任何命令,這固然不行,若是須要給哪一個命令受權,則只需寫入命令名便可。不過須要注意,必定要寫絕對路徑。
[root@localhost ~】# visudo
zhangsan ALL=/sbin/shutdown -r now
#切換成zhangsan用戶 [root@localhost ~]# su - zhangsan #查看受權的命令列表 [zhangsan@localhost ~]$ sudo -l #須要輸入zhangsan用戶的密碼 [sudo] password for zhangsan: User zhangsan may run the following commands on this host: (root) /sbin/shutdown -r now
能夠看到zhangsan 用戶擁有了 shutdown -r now的權限
提示輸入密碼爲 zhangsan 普用戶的密碼,是爲了驗證操做服務器的用戶是否是 zhangsan 用戶本人。zhangsan 用戶須要執行時,只需使用以下命令:[zhangsan@localhost ~]$ sudo /sbin/shutdown -r now
zhangsan 用戶便可以重啓服務器。注意,命令寫絕對路徑,或者把 /sbin 路徑導入普通用戶 PATH 路徑中,不然沒法執行。