linux系統下文件的默認權限以及隱藏屬性的作用

文件默認權限

當我們創建一個文件時,這個文件默認就會被設置默認權限。

#?touch?1.txt #?ls?-l?1.txt? -rw-r--r--?1?root?root?0?Sep?13?14:48?1.txt  #?mkdir?abc #?ll?-d?abc drwxr-xr-x?2?root?root?4096?Sep?13?14:51?abc

可以看到,新創建的文件權限為644,目錄權限為755。那么這個644是怎么來的呢?原來系統會給新創建的文件默認權限,這個默認權限可以通過umask來查看。

#?umask 0022  #?umask?-S u=rwx,g=rx,o=rx

通過umask -S查看的權限即為新創建目錄的默認權限,如果新創建的文件類型是文件的話,則需要減去x權限,所以新文件的默認權限是644(rw-r-xr-x)

我們還可以通過umask來修改文件的默認權限

umask?770

文件隱藏屬性

不知道大家用過寶塔沒,當我們通過寶塔新建一個站點的時候,寶塔默認會在網站的根目錄下創建一個.user.ini文件。這個文件很奇怪,即使你是root用戶,想要刪除它也辦不到。會出現下面的提示信息:

#?rm?-f?.user.ini? rm:?cannot?remove?‘.user.ini’:?Operation?not?permitted

這里我們要講下另一個概念,文件的隱藏屬性,為什么叫隱藏屬性呢?因為你通過ls -l是看不出這個文件有什么不一樣的。

#?ll?.user.ini? -rw-r--r--?1?root?root?51?Sep??5?18:48?.user.ini

想要看出蹊蹺,就需要使用lsattr來查看

#?lsattr?.user.ini? ----i--------e--?.user.ini

這里,我們需要記住幾個字符的含義:

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

  • a表示系統只允許在這個文件之后追加數據,不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修改文件,而不允許刪除任何文件。

所以,如果我們想要刪除這個文件就需要修改它的隱藏屬性。通過chattr可以做到。

#?chattr?-i?.user.ini? #?rm?-f?.user.ini??

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享