第五學時 檔案屬性操作
檔案屬性分為:
1)許可權
2)所有者
3)組
5.1 檔案類型
5.1.1 判斷檔案類型
要判斷一個檔案的類型,可以給ls加上-l選項。將會列出所有類型。
例如:
$ ls -l /home/ranga/.profile
輸出:
-rwxr-xr-x l ranga users 2368 Jul 11 15:55 .profile*
第一個字元是一個串連符(-),指出該檔案是一個普通檔案。
對於特殊檔案,第一個字元將是下列字元其中之一
字元檔案類型
-普通檔案
t符號鏈
c字元特殊檔案
b塊特殊檔案
p具名管道
sSocket
d目錄檔案夾
5.1.2 普通檔案
普通檔案:儲存任何類型的資料,這些資料可以是純文字、應用程式特定格式或系統可執行檔特定二進
制格式。
$ file /etc/php.ini
輸出:ASCII English text
5.1.3 符號鏈
符號鏈是指向系統中另一個檔案的特殊檔案。(類似於windows下的捷徑)
1.建立符號鏈
ln -s source destination
這裡的source是原檔案的相對路徑或絕對路徑,destination是鏈的名字。
例如:
$ ln -s /home/httpd/html/users/ranga /home/ranga/public_html
常見錯誤:
1)目標檔案已存在
2)目標檔案是一個目錄
如果聲明的目標是一個目錄,ln在那個目錄中建立一個與源檔案同名的鏈。
例如,若目前的目錄下有一個pub目錄。
$ ln -s /home/ftp/pub/ranga pub
建立一個鏈pub/ranga,而不是報告目標是一個目錄。
5.1.4 裝置檔案
使用者可以通過讀寫裝置檔案來訪問Linux裝置。這些裝置檔案是裝置在檔案系統內的訪問點。
裝置檔案通常位於/dev目錄下。兩種主要的裝置檔案是:
1)字元特殊檔案
2)塊特殊檔案
1.字元特殊檔案
提供每次一個字元與裝置通訊的機制。通常,字元裝置代表一個“原始”裝置。
2.塊特殊檔案
塊特殊檔案提供通過檔案系統與裝置驅動程式通訊的機制。這些檔案被稱作塊裝置,塊裝置每次傳輸一
個大的資料區塊。這種檔案類型的典型代表是一盤和可移動媒介。
例如:
$ ls -l /dev/sda
返回:brw-r----- 1 root disk 8, 0 Nov 18 04:08 /dev/sda
這裡第一個字元是b,指出檔案是一個塊特殊檔案。就像字元特殊檔案一樣,這些檔案有主數字和從數字
。
5.1.5 具名管道
Unix的一個偉大特徵是使用者可以花費很少的代價而把一個程式的輸出重新導向為另一個程式的輸入。
例如,命令 who ! grep ranga 使who命令的輸出成為grep命令的輸入。
這叫把一個命令的輸出用管道傳送到另一個命令中。
5.2 所有者、組、許可權
Unix的每一個檔案都有以下屬性:
1)所有者許可權
2)組許可權
3)其他許可權
所有者許可權決定了檔案的擁有者可以對檔案執行哪些操作。
組許可權決定了一個使用者作為一個檔案所數組的一員時可執行哪些操作。
其他許可權顯示所有其他使用者可以對檔案實施哪些操作。
使用者可以對檔案執行以下操作:
1)讀,若使用者有讀許可權,則可以瀏覽檔案的內容。
2)寫,若使用者有寫入權限,則可以變更檔的內容。
3)執行,若使用者有執行許可權,則可以把檔案當一個程式來執行。
5.2.1 查看許可權
使用者可以用ls -l命令顯示對檔案擁有的許可權。
例如:$ ls -l /home/ranga/.profile
輸出:
-rwxr-xr-x 1 ranga users 2368 Ju1 11 15.57 .profile*
因為第一個符號是'-',所以該檔案是一個普通檔案。接著後面的三個字元顯示檔案所有者的許可權。
再下面的三個字元顯示檔案相關分組的許可權,最後三個字元顯示其他使用者的許可權。
基本許可權列表:
r讀使用者可以瀏覽檔案內容
w寫使用者可以修改檔案內容
x執行使用者可以像運行程式一樣運行檔案。對於目錄,必須擁有執行許可權
才能進入目錄
1.目錄許可權
目錄的x位授權對目錄的訪問權起決定作用。
目錄的讀許可權可以使使用者查看目錄中的檔案和屬性。
目錄的寫入權限使使用者能在目錄中添加或刪除檔案。
若使用者只被授予目錄的執行許可權,則不能查看目錄中的檔案或從目錄中增加、刪除檔案,但使用者可以運
行目錄中的可執行檔。
2.SUID、SGID檔案許可權
5.2.2 改變檔案和目錄許可權
使用chmod命令來改變檔案和目錄許可權。
$ chmod (who) (action) (permissions)
列表who
u所有者
g組
o其他
a所有
列表actions
+增加許可權
-刪除許可權
=顯示的設定許可權
列表permissions
r讀
w寫
x執行
sSUID或SGID
例如:$ chmod a=r *,把一個目錄中所有檔案的讀存取權限賦予給所有使用者
$ chmod go-w .profile 刪除除.profile的所有者之外的任何使用者寫該檔案。
-R選項,遍曆所屬目錄下所有檔案及檔案夾,進行使用權限設定。
5.2.3 改變所有者和組
有兩條命令可以用來改變檔案的所有者和組:
1)chown。改變擁有者
2)chgrp。改變組
1.改變所有權
chown命令改變一個檔案的所有權。
chown options user:group files
chown ranga: /home/httpd/html/users/ranga
把給定目錄的所有者改成使用者ranga
2.限制
超級使用者root可以無限的改變檔案擁有權,但對普通使用者則有一些限制條件。
3.改變組所有權
$ chown user:authors /home/ranga/docs/ch5.doc
把所給檔案的組改變為athors下的user使用者