linux 檔案許可權 型別 命名規則

2022-05-14 19:44:36 字數 3473 閱讀 2072

檔案許可權

-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 系統中,檔案和目錄的命名規則如下 除了字元 之外,所有的字元都可...