檔案權限與目錄配置
- 如何修改檔案屬性與權限
-
- 修改檔案所屬使用者組 chgrp
- 修改檔案擁有者 chown
- 修改檔案權限 chmod
-
- 數字類型修改檔案權限
- 文字類型修改檔案權限
- 目錄與檔案的權限意義
-
- 對檔案的重要性
- 對目錄的重要性
- Linux檔案種類與拓展名
-
- 檔案種類
- Linux檔案名
- Linux檔案名長度限制
- Linux檔案名的限制
如何修改檔案屬性與權限
修改檔案所屬使用者組 chgrp
change group ==>chgrp
要修改的組名必須在/etc/group中存在,否則顯示錯誤。
[[email protected] ~ ]# chgrp [-R] dirname/filename
選項與參數 :
-R:進行遞歸(recursive)修改,亦連同子目錄下的所有檔案、目錄都更新成為這個使用者組之意,常常用在修改某一目錄内所有的檔案之情況。
範例:
[[email protected] ~ ]# chgrp users initial-setup-ks.cfg
修改檔案擁有者 chown
change owner ==>chown
使用者必須是已經存在的賬号,也就是在/etc/passwd中有記錄的使用者名稱才可修改。
除了修改檔案擁有者外,還可順便直接修改使用者組的名稱。
[[email protected] ~ ] # chown [-R] 賬号名稱 檔案或目錄
[[email protected] ~ ] # chown [-R] 賬号名稱:使用者組名稱 檔案或目錄
範例:
[[email protected] ~ ] # chown root:root initial-setup-ks.cfg
修改檔案權限 chmod
更改模式==> chmod
數字類型修改檔案權限
R:4
W:2
X:1
owner= rwx = 4 + 2 + 1 = 7
group= rwx = 4 + 2 + 1 = 7
others= - - - = 0 + 0 + 0 = 0
[[email protected] ~]# chmod [-R] xyz
檔案或目錄選項與參數:
xyz:就是剛剛提到的數字類型的權限屬性,為rwx屬性數值的相加
-R:進行遞歸修改,亦連同子目錄下的所有檔案都會修改
[root @ study〜] #ls -al .bashrc -rw-r--r--。
1root 176 2013年12月29日.bashrc
[root @ study〜] #chmod 777 .bashrc
[root @ study〜] #ls -al .bashrc -rwxrwxrwx。
1 root root 176 2013年12月29日.bashrc
文字類型修改檔案權限
chmod | u / g / o / a | + / - / = | r / w / x | 檔案或目錄 |
---|
[[email protected] ~ ]#chmod u=rwx,go=rx .bashrc
注:u=rwx,go=rx 是連在一起的,中間沒有空格
[[email protected] ~ ]#chmod u+rx,go+x .bashrc
在+/-的狀态在,隻要是沒有指定到的項目,則該權限不會被變動
目錄與檔案的權限意義
對檔案的重要性
- 與Windows差別:檔案是否能被執行,借由是否有【x】這個權限來決定,與檔案名沒有絕對的關系。
- 當對一個檔案有【w】權限時,具有寫入、編輯、新增、修改檔案内容的權限,但并不具有删除該檔案本身的權限。
對目錄的重要性
- r(read contents in directory)表示具有讀取目錄結構清單的權限,是以當你具有讀取一個目錄的權限時,表示你可以查詢該目錄下的檔案名資料,是以你就可以利用ls這個指令将該目錄的内容清單顯示出來。
-
w(modify contents of directory)表示具有修改該目錄結構清單的權限,也就是:
(1)建立新的檔案和目錄;
(2) 删除已經存在的檔案與目錄(無論該檔案的權限是什麼)
(3)将已存在的檔案或目錄進行更名;
(4)移動該目錄内的檔案、目錄位置
- x(access directory)表示使用者具有進入該目錄成為工作目錄的權限
工作目錄(work directory): 登入Linux時,所在的家目錄就是目前的工作目錄。
元件 | 内容 | 替代對象 | r | w | x |
---|---|---|---|---|---|
檔案 | 詳細資料data | 檔案夾 | 讀到檔案内容 | 修改檔案内容 | 執行檔案内容 |
目錄 | 檔案名 | 可分類抽屜 | 讀到檔案名 | 修改檔案名 | 進入該目錄的權限 |
示例:
假設有三個檔案名
- /dir1/file1
- /dir2
操作 | /dir1 | /dir1/file1 | /dir2 | 重點 |
---|---|---|---|---|
讀取file1内容 | x | r | - | 要能進入/dir1才能讀到裡面的檔案資料 |
修改file1内容 | x | rw | - | 要進入/dir1且修改file1 |
執行file1内容 | x | rx | - | 要進入/dir1且能運作file1 |
删除file1内容 | wx | - | - | 要進入/dir1且具有目錄修改的權限 |
将file1複制到/dir2 | x | r | wx | 要能讀file1且具有/dir2的修改權限 |
注:要開放的目錄通常具有rx這兩個權限
Linux檔案種類與拓展名
檔案種類
-
正常檔案(regular file)
就是一般我們在進行讀寫的類型的檔案,在由ls -al所顯示出來的屬性方面,第一個字元為[ - ],例如[- rwxrwxrwx]。
-
純文字檔案(ASCII)
幾乎隻要我們可以用來作為設定的檔案都屬于這一種檔案類型。
- 二進制檔案(Binary)
-
資料檔案(data)
有些程式在運作的過程當中會讀取某些特定格式的檔案,那些特定格式的檔案,那些特定的檔案可以被稱為資料檔案(data file)。舉例來說,我們的Linux在使用者登入時,都會将登入的資料記錄在/var/log/wtmp這個檔案内,該檔案時一個資料檔案,它能夠通過last 這個指令讀出來。但是使用cat時,會讀出亂碼,因為它是屬于一種特殊格式的檔案。
-
-
目錄(directory)
第一個屬性為[d]
-
連結檔案(link)
第一個屬性為[l],類似windows系統下面的快捷方式
-
裝置與裝置檔案(device)
與系統周邊及存儲等相關的一些檔案,通常都集中在/dev這個目錄下
-
區塊(block)裝置檔案
就是一些存儲資料,以提供系統随機存取的接口裝置,舉例來說硬碟和軟碟就是。你可以随機地在硬碟的不同區塊讀寫,這種裝置就是塊裝置。通常在/dev/sda裡面,第一個屬性為[b]。
-
字元(character)裝置檔案
亦即是一些序列槽端口的接口裝置,例如滑鼠鍵盤等。這些裝置的特色就是一次性讀取,不能夠截斷輸出。舉例來說,你不可能讓滑鼠跳到另一個畫面,而是連續滑動到另一個地方,第一個屬性為[c]。
-
-
資料接口檔案(sockets)
通常用于在網絡上的資料交換,最常在/run或/tmp中看到這種檔案類型,第一個屬性為[s]。
-
資料輸送檔案(FIFO,pipe)
FIFO是先進先出(first-in-first-out)的縮寫,即管道,主要目的是解決多個程式同時讀寫一個檔案所造成的錯誤問題。第一個屬性為[p]。
Linux檔案名
一個Linux檔案能不能被執行,與它第一欄的十個屬性有關,與檔案名一點關系都沒有,隻要權限有x,就代表這個檔案具有可以被執行的能力。
但具有可以被執行的能力,能不能執行成功還是得看檔案内容。通常還是會以适當的拓展名來表示該檔案是什麼類型,下面有數種常用的拓展名:
- *.sh:腳本或批處理檔案(scripts)
- .Z、.tar、.tar.gz、.zip、.tgz:經過打包的壓縮檔案
- .html、.php:網頁相關檔案
Linux檔案名長度限制
在Linux下面,使用傳統的ext2、ext3、ext4檔案系統以及近來被CentOS7當作預設檔案系統的xfs而言,針對檔案的檔案名長度限制為:
- 單一檔案或目錄的最大容許檔案名為255位元組,以一個ASCII英文占用一個位元組來說,則大約可達255個字元長度。若是以每個漢字占用2個位元組來說,最大檔案名就是大約在128個漢字之間
Linux檔案名的限制
由于Linux在指令行模式下的一些指令操作關系,一般來說,你在設定Linux下面的檔案名時最好避免一些特殊的字元比較好,例如下面這些:
* ? > < ; & ![ ] | \ ‘ ” ` ( ) { }