檔案許可權-rwxr-x--t 檔案型別 使用者許可權 組許可權 其他使用者許可權
umask是乙個掩碼,設定檔案的預設許可權,會遮蔽掉不想授予該安全級別的許可權,從物件的全權許可權中減掉;對檔案全權許可權是666,目錄是777,因為目錄有執行許可權。系統啟動時在/etc/profile中設定。
chmod [ugoa] [+-=] [rwxxstugo] 只有檔案的屬主可以改變許可權
chmod 0xddd file
-r 引數表示遞迴的改變檔案許可權
u 表示設定許可權和屬主一樣,g和o類似
s 執行時重新設定uid或gid
t 保留檔案或目錄
x 表示如果物件是目錄或者已有執行許可權,賦予執行許可權
suid sgid 粘著位 構成另外乙個八進位制數在 umask 中(前),umask 有 4 個 8 進製數
r 對檔案而言,具有讀取檔案內容的許可權;對目錄來說,具有瀏覽目錄的許可權
w 對檔案而言,具有新增、修改和刪除檔案的許可權;對目錄來說,具有刪除、移動目錄內檔案的許可權
x 對檔案而言,具有執行檔案的許可權;對目錄了來說該使用者具有進入目錄的許可權
s(suid) 當檔案被使用者使用時,程式會以檔案的屬主許可權執行,大寫 s 表示使用者的執行許可權為空
s(sgid) 對檔案來說,檔案會以檔案屬組的許可權執行;對目錄來說,目錄中建立的許可權會以目錄的缺省屬組作為缺省屬組,常用於建立共享組共享檔案(新建共享組後可能需要重啟才能生效)
t(sticky) 程序結束後仍保留在記憶體中;當使用者對於此目錄具有 w, x 許可權,亦即具有寫入的許可權時,使用者在該目錄下建立的檔案或目錄,僅有自己與 root 才有權力刪除該檔案
suid 不用在目錄上,而 t 不用在檔案上。suid 為 u+s ,而 sgid 為 g+s ,t 則是 o+t
目錄 r 許可權表明可以使用ls命令列出內容(必須也有使用ls命令選項的執行許可權), w 許可權表明檔案可以被新增或刪除(目錄必須也有執行許可權), x 許可權控制對目錄的訪問。使用者可以cd到目錄中,使用讀訪問列出其中的內容。檔案可以使用寫訪問被移動或者拷貝到目錄中;只有屬主可以使用 chmod 操作目錄,重新命名目錄。
檔案隱藏屬性
什麼?檔案還有隱藏屬性?光是那九個許可權就快要瘋掉了,竟然還有隱藏屬性,真是要命~ 但是沒辦法,就是有檔案的隱藏屬性存在啊!不過,這些隱藏的屬性確實對於系統有很大的幫助的~ 尤其是在系統安全 (security) 上面,重要的緊呢!不過要先強調的是,底下的chattr指令只能在ext2/ext3/ext4的 linux 傳統檔案系統上面完整生效, 其他的檔案系統可能就無法完整的支援這個指令了,例如 xfs 僅支援部份引數而已。底下我們就來談一談如何設定與檢查這些隱藏的屬性吧!
chattr (設定檔案隱藏屬性)
[root@study ~]# chattr [+-=][asacdistu] 檔案或目錄名稱
選項與引數:
+ :增加某乙個特殊引數,其他原本存在引數則不動。
- :移除某乙個特殊引數,其他原本存在引數則不動。
= :設定一定,且僅有後面接的引數
a :當設定了 a 這個屬性時,若你有訪問此檔案(或目錄)時,他的訪問時間 atime 將不會被修改,
可避免 i/o 較慢的機器過度的訪問磁碟。(目前建議使用檔案系統掛載引數處理這個專案)
s :一般檔案是非同步寫入磁碟的(原理請參考前一章sync的說明),如果加上 s 這個屬性時,
當你進行任何檔案的修改,該更動會『同步』寫入磁碟中。
a :當設定 a 之後,這個檔案將只能增加資料,而不能刪除也不能修改資料,只有root 才能設定這屬性
c :這個屬性設定之後,將會自動的將此檔案『壓縮』,在讀取的時候將會自動解壓縮,
但是在儲存的時候,將會先進行壓縮後再儲存(看來對於大檔案似乎蠻有用的!)
d :當 dump 程式被執行的時候,設定 d 屬性將可使該檔案(或目錄)不會被 dump 備份
i :這個 i 可就很厲害了!他可以讓乙個檔案『不能被刪除、改名、設定鏈結也無法寫入或新增資料!』
對於系統安全性有相當大的助益!只有 root 能設定此屬性
s :當檔案設定了 s 屬性時,如果這個檔案被刪除,他將會被完全的移除出這個硬碟空間,
所以如果誤刪了,完全無法救回來了喔!
u :與 s 相反的,當使用 u 來設定檔案時,如果該檔案被刪除了,則資料內容其實還存在磁碟中,
可以使用來救援該檔案喔!
注意1:屬性設定常見的是 a 與 i 的設定值,而且很多設定值必須要身為 root 才能設定
注意2:xfs 檔案系統僅支援 aadis 而已
範例:請嘗試到/tmp底下建立檔案,並加入 i 的引數,嘗試刪除看看。
[root@study ~]# cd /tmp
[root@study tmp]# touch attrtest <==建立乙個空檔案
[root@study tmp]# chattr +i attrtest <==給予 i 的屬性
[root@study tmp]# rm attrtest <==嘗試刪除看看
rm: remove regular empty file `attrtest'? y
rm: cannot remove `attrtest': operation not permitted
# 看到了嗎?呼呼!連 root 也沒有辦法將這個檔案刪除呢!趕緊解除設定!
範例:請將該檔案的 i 屬性取消!
[root@study tmp]# chattr -i attrtest
這個指令是很重要的,尤其是在系統的資料安全上面!由於這些屬性是隱藏的性質,所以需要以 lsattr 才能看到該屬性呦!其中,個人認為最重要的當屬 +i 與 +a 這個屬性了。+i 可以讓乙個檔案無法被更動,對於需要強烈的系統安全的人來說, 真是相當的重要的!裡頭還有相當多的屬性是需要 root 才能設定的呢!
此外,如果是 log file 這種的登入檔,就更需要 +a 這個可以增加,但是不能修改舊有的資料與刪除的引數了!怎樣?很棒吧! 未來提到登入檔 (十八章) 的認知時,我們再來聊一聊如何設定他吧!
檔案型別
普通檔案 - 、目錄檔案 d 、字元裝置檔案 c 、塊裝置檔案 b 、符號鏈結檔案 l 、套介面檔案 s 、先進先出檔案 f
檔案的命名規則
最大長度:檔案或目錄名最大長度為255個數字字母字元,包含完整路徑名稱及目錄 (/) 之完整檔名為 4096 個字元
非數字字母字元:一些非數字字母字元或者元字元是可用的:「 _ - . 」;允許但不推薦的符號:「 * ? ~ [ ] & | " $ 」;不允許的符號:「 ; < > 」。
檔名擴充套件:檔名可以包含零個或多個副檔名。副檔名常被乙個應用追加到檔案的末端。副檔名通常是1個到3個字元,追加到檔名的末端,之前有乙個句點。
目錄名的副檔名:目錄名一般不包含副檔名,但是也沒有規則反對這一點。
大小寫敏感:linux檔案和目錄名是大小寫敏感的,一般規則都是使用小寫字母。
Linux檔案命名規則
linux目錄結構命名規定 幾乎所有的linux版本都會遵循fhs filesystem hierarchy standard 中文翻譯過來即為檔案系統層次化標準。類似於windows作業系統中c盤的檔案目錄,fhs採用樹形結構組織檔案。fhs定義了系統中每個區域的用途 所需要的最小構成的檔案和目錄...
Linux檔案(目錄)命名規則
介紹完 linux 系統中目錄結構之後,讀者一定想知道如何為檔案或目錄命名。我們知道,在 linux 系統中,一切都是檔案,既然是檔案,就必須要有檔名。同其他系統相比,linux 作業系統對檔案或目錄命名的要求相對比較寬鬆。linux 系統中,檔案和目錄的命名規則如下 除了字元 之外,所有的字元都可...
Linux檔案(目錄)命名規則
介紹完 linux 系統中目錄結構之後,讀者一定想知道如何為檔案或目錄命名。我們知道,在 linux 系統中,一切都是檔案,既然是檔案,就必須要有檔名。同其他系統相比,linux 作業系統對檔案或目錄命名的要求相對比較寬鬆。linux 系統中,檔案和目錄的命名規則如下 除了字元 之外,所有的字元都可...