2019年2月10日 星期日

[Linux]使用chattr 將檔案設定特殊屬性 讓任何帳號都無法對檔案 刪除或修改

範例一 
qoo 這個檔案新增 i 這個特殊屬性 [root@server2 tmp]# chattr +i qoo 
用一般 ll 並無法看到特殊屬性 
[root@server2 tmp]# ll qoo -rw-r--r--  1 root root 0 Aug 31 13:50 qoo 
  
使用lsattr 既可看到 qoo 這個檔案有 i 這個屬性 [root@server2 tmp]# lsattr qoo ----i-------- qoo    ← 可以看到有 i 這個屬性 
  
若要將資料寫入 qoo 這個檔案 會出現 Permission denied 理論上我使用 root 帳號 不應該會有無法寫入檔案之問題 
  
[root@server2 tmp]# cat /etc/passwd > qoo -bash: qoo: Permission denied 
  
若要將 qoo 這個檔案刪除 會出現 cannot remove `qoo': Operation not permitted 
理論上我使用 root 帳號 不應該會有無法刪除檔案之問題 
[root@server2 tmp]# rm qoo rm: remove write-protected regular empty file `qoo'? y rm: cannot remove `qoo': Operation not permitted 
  
 當我將 qoo 這個檔案把 i 特殊屬性移除 
[root@server2 tmp]# chattr -i qoo [root@server2 tmp]# lsattr qoo ------------- qoo 已經確實將 i 這個屬性移除了 
   
可以正常修改檔案 及 刪除檔案 [root@server2 tmp]# cat /etc/passwd > qoo [root@server2 tmp]# ll qoo -rw-r--r--  1 root root 6237 Aug 31 13:52 qoo [root@server2 tmp]# rm qoo rm: remove regular file `qoo'? y [root@server2 tmp]# 
  
  
  
  
  
  
範例二 
檢查當 /etc/passwd 檔案 屬性 
[root@server1 etc]# clear [root@server1 etc]# ll passwd -rw-r--r--    1 root     root         2666  8¤ë 31 14:12 passwd [root@server1 etc]# lsattr passwd ------------- passwd 
  
   
當我們把 /etc/passwd 設定 i 屬性 [root@server1 etc]# chattr +i passwd [root@server1 etc]# lsattr passwd ----i-------- passwd  ← 可以看到有 i 這個屬性 
  
新增帳號 時就會出現無法開啟檔案之錯誤訊息  [root@server1 etc]# useradd qoo useradd: unable to open password file 
  
  
當我將 passwd 這個檔案把 i 特殊屬性移除 [root@server1 etc]# chattr -i passwd [root@server1 etc]# lsattr passwd ------------- passwd 已經確實將 i 這個屬性移除了 
  
新增帳號 就不會出現錯誤訊息了 [root@server1 etc]# useradd qoo [root@server1 etc]# [root@server1 etc]# ll passwd -rw-r--r--    1 root     root         2666  8¤ë 31 14:12 passwd 

沒有留言:

張貼留言