日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

鸟哥的Linux私房菜(基础篇)- 第六章、Linux 的文件权限与目录配置

發(fā)布時(shí)間:2025/3/21 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 鸟哥的Linux私房菜(基础篇)- 第六章、Linux 的文件权限与目录配置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
第六章、Linux的文件權(quán)限與目錄配置
最近更新日期:2009/08/18
Linux最優(yōu)秀的地方之一,就在于他的多人多任務(wù)環(huán)境。而為了讓各個(gè)使用者具有較保密的文件數(shù)據(jù),因此文件的權(quán)限管理就變的很重要了。Linux一般將文件可存取的身份分為三個(gè)類別,分別是 owner/group/others,且三種身份各有 read/write/execute 等權(quán)限。若管理不當(dāng),你的Linux主機(jī)將會(huì)變的很『不蘇服!@_@』。另外,你如果首次接觸Linux的話,那么,在Linux底下這么多的目錄/文件,到底每個(gè)目錄/文件代表什么意義呢?底下我們就來一一介紹呢!

1. 使用者與群組
2. Linux文件權(quán)限概念
  2.1 Linux文件屬性
  2.2 如何改變文件屬性與權(quán)限: chgrp, chown, chmod
  2.3 目錄與文件之權(quán)限意義
  2.4 Linux文件種類與擴(kuò)展名
3. Linux目錄配置
  3.1 Linux目錄配置的依據(jù)--FHS:/, /usr, /var
  3.2 目錄樹(directory tree)
  3.3 絕對路徑與相對路徑
  3.4 CentOS 的觀察: lsb_release
4. 重點(diǎn)回顧
5. 本章練習(xí)
6. 參考資料與延伸閱讀
7. 針對本文的建議:http://phorum.vbird.org/viewtopic.php?t=23878

使用者與群組

經(jīng)過第五章的洗禮之后,你應(yīng)該可以在Linux的指令列模式底下輸入指令了吧?接下來,當(dāng)然是要讓你好好的瀏覽一下Linux系統(tǒng)里面有哪些重要的文件啰。不過,每個(gè)文件都有相當(dāng)多的屬性與權(quán)限,其中最重要的可能就是文件的擁有者的概念了。所以,在開始文件相關(guān)信息的介紹前,鳥哥先就簡單的(1)使用者及(2)群組與(3)非本群組外的其他人等概念作個(gè)說明吧~好讓你快點(diǎn)進(jìn)入狀況的哩! ^_^

  • 文件擁有者

    初次接觸Linux的朋友大概會(huì)覺得很怪異,怎么『Linux有這么多使用者,還分什么群組,有什么用?』。這個(gè)『用戶與群組』的功能可是相當(dāng)健全而好用的一個(gè)安全防護(hù)呢!怎么說呢?由于Linux是個(gè)多人多任務(wù)的系統(tǒng),因此可能常常會(huì)有多人同時(shí)使用這部主機(jī)來進(jìn)行工作的情況發(fā)生,為了考慮每個(gè)人的隱私權(quán)以及每個(gè)人喜好的工作環(huán)境,因此,這個(gè)『文件擁有者』的角色就顯的相當(dāng)?shù)闹匾?#xff01;

    例如當(dāng)你將你的e-mail情書轉(zhuǎn)存成文件之后,放在你自己的家目錄,你總不希望被其他人看見自己的情書吧?這個(gè)時(shí)候,你就把該文件設(shè)定成『只有文件擁有者,就是我,才能看與修改這個(gè)文件的內(nèi)容』,那么即使其他人知道你有這個(gè)相當(dāng)『有趣』的文件,不過由于你有設(shè)定適當(dāng)?shù)臋?quán)限,所以其他人自然也就無法知道該文件的內(nèi)容啰!

  • 群組概念

    那么群組呢?為何要配置文件案還有所屬的群組?其實(shí),群組最有用的功能之一,就是當(dāng)你在團(tuán)隊(duì)開發(fā)資源的時(shí)候啦!舉例來說,假設(shè)有兩組專題生在我的主機(jī)里面,第一個(gè)專題組別為projecta,里面的成員有class1, class2, class3三個(gè);第二個(gè)專題組別為projectb,里面的成員有class4, class5, class6。這兩個(gè)專題之間是有競爭性質(zhì)的,但卻要繳交同一份報(bào)告。每組的組員之間必須要能夠互相修改對方的數(shù)據(jù),但是其他組的組員則不能看到本組自己的文件內(nèi)容,此時(shí)該如何是好?

    在Linux底下這樣的限制是很簡單啦!我可以經(jīng)由簡易的文件權(quán)限設(shè)定,就能限制非自己團(tuán)隊(duì)(亦即是群組啰)的其他人不能夠閱覽內(nèi)容啰!而且亦可以讓自己的團(tuán)隊(duì)成員可以修改我所建立的文件!同時(shí),如果我自己還有私人隱密的文件,仍然可以設(shè)定成讓自己的團(tuán)隊(duì)成員也看不到我的文件數(shù)據(jù)。很方便吧!

    另外,如果teacher這個(gè)賬號是projecta與projectb這兩個(gè)專題的老師,他想要同時(shí)觀察兩者的進(jìn)度,因此需要能夠進(jìn)入這兩個(gè)群組的權(quán)限時(shí),你可以設(shè)定teacher這個(gè)賬號,『同時(shí)支持projecta與projectb這兩個(gè)群組!』,也就是說:每個(gè)賬號都可以有多個(gè)群組的支持呢

    這樣說或許你還不容易理解這個(gè)使用者與群組的關(guān)系吧?沒關(guān)系,我們可以使用目前『家庭』的觀念來進(jìn)行解說喔!假設(shè)有一家人,家里只有三兄弟,分別是王大毛、王二毛與王三毛三個(gè)人,而這個(gè)家庭是登記在王大毛的名下的!所以,『王大毛家有三個(gè)人,分別是王大毛、王二毛與王三毛』,而且這三個(gè)人都有自己的房間,并且共同擁有一個(gè)客廳喔!

    • 使用者的意義:由于王家三人各自擁有自己的房間,所以,王二毛雖然可以進(jìn)入王三毛的房間,但是二毛不能翻三毛的抽屜喔!那樣會(huì)被三毛K的!因?yàn)槌閷侠锩婵赡苡腥约核饺说臇|西,例如情書啦,日記啦等等的,這是『私人的空間』,所以當(dāng)然不能讓二毛拿啰!

    • 群組的概念:由于共同擁有客廳,所以王家三兄弟可以在客廳打開電視機(jī)啦、翻閱報(bào)紙啦、坐在沙發(fā)上面發(fā)呆啦等等的! 反正,只要是在客廳的玩意兒,三兄弟都可以使用喔!因?yàn)榇蠹叶际且患胰寺?#xff01;

    這樣說來應(yīng)該有點(diǎn)曉得了喔!那個(gè)『王大毛家』就是所謂的『群組』啰,至于三兄弟就是分別為三個(gè)『使用者』,而這三個(gè)使用者是在同一個(gè)群組里面的喔!而三個(gè)使用者雖然在同一群組內(nèi),但是我們可以設(shè)定『權(quán)限』,好讓某些用戶個(gè)人的信息不被群組的擁有者查詢,以保有個(gè)人『私人的空間』啦!而設(shè)定群組共享,則可讓大家共同分享喔!

  • 其他人的概念

    好了,那么今天又有個(gè)人,叫做張小豬,他是張小豬家的人,與王家沒有關(guān)系啦!這個(gè)時(shí)候,除非王家認(rèn)識(shí)張小豬,然后開門讓張小豬進(jìn)來王家,否則張小豬永遠(yuǎn)沒有辦法進(jìn)入王家,更不要說進(jìn)到王三毛的房間啦!不過,如果張小豬透過關(guān)系認(rèn)識(shí)了三毛,并且跟王三毛成為好朋友,那么張小豬就可以透過三毛進(jìn)入王家啦!呵呵!沒錯(cuò)!那個(gè)張小豬就是所謂的『其他人,Others』啰!

    因此,我們就可以知道啦,在Linux里面,任何一個(gè)文件都具有『User, Group及Others』三種身份的個(gè)別權(quán)限,我們可以將上面的說明以底下的圖示來解釋:


    圖1.1、每個(gè)文件的擁有者、群組與其他人的示意圖
    我們以王三毛為例,王三毛這個(gè)『文件』的擁有者為王三毛,他屬于王大毛這個(gè)群組,而張小豬相對于王三毛,則只是一個(gè)『其他人(others)』而已。

    不過,這里有個(gè)特殊的人物要來介紹的,那就是『萬能的天神』!這個(gè)天神具有無限的神力,所以他可以到達(dá)任何他想要去的地方,呵呵!那個(gè)人在Linux系統(tǒng)中的身份代號是『 root 』啦!所以要小心喔!那個(gè)root可是『萬能的天神』喔!

    無論如何,『使用者身份』,與該使用者所支持的『群組』概念,在Linux的世界里面是相當(dāng)?shù)闹匾?#xff0c;他可以幫助你讓你的多任務(wù)Linux環(huán)境變的更容易管理!更詳細(xì)的『身份與群組』 設(shè)定,我們將在第十四章、賬號管理再進(jìn)行解說。底下我們將針對文件系統(tǒng)與文件權(quán)限來進(jìn)行說明。

    • Linux 用戶身份與群組記錄的文件

    在我們Linux系統(tǒng)當(dāng)中,默認(rèn)的情況下,所有的系統(tǒng)上的賬號與一般身份使用者,還有那個(gè)root的相關(guān)信息,都是記錄在/etc/passwd這個(gè)文件內(nèi)的。至于個(gè)人的密碼則是記錄在/etc/shadow這個(gè)文件下。此外,Linux所有的組名都紀(jì)錄在/etc/group內(nèi)!這三個(gè)文件可以說是Linux系統(tǒng)里面賬號、密碼、群組信息的集中地啰!不要隨便刪除這三個(gè)文件啊! ^_^

    至于更多的與賬號群組有關(guān)的設(shè)定,還有這三個(gè)文件的格式,不要急,我們在第十四章的賬號管理時(shí),會(huì)再跟大家詳細(xì)的介紹的!這里先有概念即可。


    Linux 文件權(quán)限概念

    大致了解了Linux的使用者與群組之后,接著下來,我們要來談一談,這個(gè)文件的權(quán)限要如何針對這些所謂的『使用者』與『群組』來設(shè)定呢?這個(gè)部分是相當(dāng)重要的,尤其對于初學(xué)者來說,因?yàn)槲募臋?quán)限與屬性是學(xué)習(xí)Linux的一個(gè)相當(dāng)重要的關(guān)卡,如果沒有這部份的概念,那么你將老是聽不懂別人在講什么呢!尤其是當(dāng)你在你的屏幕前面出現(xiàn)了『Permissiondeny』的時(shí)候,不要擔(dān)心,『肯定是權(quán)限設(shè)定錯(cuò)誤』啦!呵呵!好了,閑話不多聊,趕快來瞧一瞧先。


    Linux文件屬性

    嗯!既然要讓你了解Linux的文件屬性,那么有個(gè)重要的也是常用的指令就必須要先跟你說啰!那一個(gè)?就是『ls 』這一個(gè)察看文件的指令啰!在你以root的身份登入Linux之后,下達(dá)『ls -al 』看看,會(huì)看到底下的幾個(gè)咚咚:

    [root@www ~]# ls -al total 156 drwxr-x--- 4 root root 4096 Sep 8 14:06 . drwxr-xr-x 23 root root 4096 Sep 8 14:21 .. -rw------- 1 root root 1474 Sep 4 18:27 anaconda-ks.cfg -rw------- 1 root root 199 Sep 8 17:14 .bash_history -rw-r--r-- 1 root root 24 Jan 6 2007 .bash_logout -rw-r--r-- 1 root root 191 Jan 6 2007 .bash_profile -rw-r--r-- 1 root root 176 Jan 6 2007 .bashrc -rw-r--r-- 1 root root 100 Jan 6 2007 .cshrc drwx------ 3 root root 4096 Sep 5 10:37 .gconf <=范例說明處 drwx------ 2 root root 4096 Sep 5 14:09 .gconfd -rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log <=范例說明處 -rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog [ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ] [ 權(quán)限 ][連結(jié)][擁有者][群組][文件容量][ 修改日期 ][ 檔名 ]
    Tips:
    由于本章后續(xù)的chgrp, chown等指令可能都需要使用root的身份才能夠處理,所以這里建議您以root的身份登入Linux來學(xué)習(xí)本章。

    ls是『list』的意思,重點(diǎn)在顯示文件的文件名與相關(guān)屬性。而選項(xiàng)『-al』則表示列出所有的文件詳細(xì)的權(quán)限與屬性(包含隱藏檔,就是文件名第一個(gè)字符為『 . 』的文件)。如上所示,在你第一次以root身份登入Linux時(shí),如果你輸入上述指令后,應(yīng)該有上列的幾個(gè)東西,先解釋一下上面七個(gè)字段個(gè)別的意思:


    圖2.1.1、文件屬性的示意圖
    • 第一欄代表這個(gè)文件的類型與權(quán)限(permission):

    這個(gè)地方最需要注意了!仔細(xì)看的話,你應(yīng)該可以發(fā)現(xiàn)這一欄其實(shí)共有十個(gè)字符:(圖2.1.1及圖2.1.2內(nèi)的權(quán)限并無關(guān)系)


    圖2.1.2、文件的類型與權(quán)限之內(nèi)容
    • 第一個(gè)字符代表這個(gè)文件是『目錄、文件或鏈接文件等等』:

      • 當(dāng)為[ d ]則是目錄,例如上表檔名為『.gconf』的那一行;
      • 當(dāng)為[ - ]則是文件,例如上表檔名為『install.log』那一行;
      • 若是[ l ]則表示為連結(jié)檔(link file);
      • 若是[ b ]則表示為裝置文件里面的可供儲(chǔ)存的接口設(shè)備(可隨機(jī)存取裝置);
      • 若是[ c ]則表示為裝置文件里面的串行端口設(shè)備,例如鍵盤、鼠標(biāo)(一次性讀取裝置)。

    • 接下來的字符中,以三個(gè)為一組,且均為『rwx』的三個(gè)參數(shù)的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執(zhí)行(execute)。要注意的是,這三個(gè)權(quán)限的位置不會(huì)改變,如果沒有權(quán)限,就會(huì)出現(xiàn)減號[ - ]而已。

      • 第一組為『文件擁有者的權(quán)限』,以『install.log』那個(gè)文件為例,該文件的擁有者可以讀寫,但不可執(zhí)行;
      • 第二組為『同群組的權(quán)限』;
      • 第三組為『其他非本群組的權(quán)限』。

    例題: 若有一個(gè)文件的類型與權(quán)限數(shù)據(jù)為『-rwxr-xr--』,請說明其意義為何? 答: 先將整個(gè)類型與權(quán)限數(shù)據(jù)分開查閱,并將十個(gè)字符整理成為如下所示:
    [-][rwx][r-x][r--]
    ?1??234??567??890 ?1 為:代表這個(gè)文件名為目錄或文件,本例中為文件(-);
    234為:擁有者的權(quán)限,本例中為可讀、可寫、可執(zhí)行(rwx);
    567為:同群組用戶權(quán)力,本例中為可讀可執(zhí)行(rx);
    890為:其他用戶權(quán)力,本例中為可讀(r)


    同時(shí)注意到,rwx所在的位置是不會(huì)改變的,有該權(quán)限就會(huì)顯示字符,沒有該權(quán)限就變成減號(-)就是了。

    另外,目錄與文件的權(quán)限意義并不相同,這是因?yàn)槟夸浥c文件所記錄的數(shù)據(jù)內(nèi)容不相同所致。由于目錄與文件的權(quán)限意義非常的重要,所以鳥哥將他獨(dú)立到2.3節(jié)目錄與文件之權(quán)限意義中再來談。

    • 第二欄表示有多少檔名連結(jié)到此節(jié)點(diǎn)(i-node):

    每個(gè)文件都會(huì)將他的權(quán)限與屬性記錄到文件系統(tǒng)的i-node中,不過,我們使用的目錄樹卻是使用文件名來記錄,因此每個(gè)檔名就會(huì)連結(jié)到一個(gè)i-node啰!這個(gè)屬性記錄的,就是有多少不同的檔名連結(jié)到相同的一個(gè)i-node號碼去就是了。關(guān)于i-node的相關(guān)數(shù)據(jù)我們會(huì)在第八章談到文件系統(tǒng)時(shí)再加強(qiáng)介紹的。

    • 第三欄表示這個(gè)文件(或目錄)的『擁有者賬號』
    • 第四欄表示這個(gè)文件的所屬群組

    在Linux系統(tǒng)下,你的賬號會(huì)附屬于一個(gè)或多個(gè)的群組中。舉剛剛我們提到的例子,class1, class2, class3均屬于projecta這個(gè)群組,假設(shè)某個(gè)文件所屬的群組為projecta,且該文件的權(quán)限如圖2.1.2所示(-rwxrwx---),則class1, class2, class3三人對于該文件都具有可讀、可寫、可執(zhí)行的權(quán)限(看群組權(quán)限)。但如果是不屬于projecta的其他賬號,對于此文件就不具有任何權(quán)限了。

    • 第五欄為這個(gè)文件的容量大小,默認(rèn)單位為bytes;
    • 第六欄為這個(gè)文件的建檔日期或者是最近的修改日期:

    這一欄的內(nèi)容分別為日期(月/日)及時(shí)間。如果這個(gè)文件被修改的時(shí)間距離現(xiàn)在太久了,那么時(shí)間部分會(huì)僅顯示年份而已。如下所示:

    [root@www ~]# ls -l /etc/termcap /root/install.log -rw-r--r-- 1 root root 807103 Jan 7 2007 /etc/termcap -rw-r--r-- 1 root root 42304 Sep 4 18:26 /root/install.log # 如上所示,/etc/termcap 為 2007 年所修改過的文件,離現(xiàn)在太遠(yuǎn)之故; # 至于 install.log 是今年 (2009) 所建立的,所以就顯示完整的時(shí)間了。

    如果想要顯示完整的時(shí)間格式,可以利用ls的選項(xiàng),亦即:『ls -l --full-time』就能夠顯示出完整的時(shí)間格式了!包括年、月、日、時(shí)間喔。另外,如果你當(dāng)初是以繁體中文安裝你的Linux系統(tǒng),那么日期字段將會(huì)以中文來顯示。可惜的是,中文并沒有辦法在純文本的終端機(jī)模式中正確的顯示,所以此欄會(huì)變成亂碼。那你就得要使用『LANG=en_US』來修改語系喔!

    如果想要讓系統(tǒng)默認(rèn)的語系變成英文的話,那么你可以修改系統(tǒng)配置文件『/etc/sysconfig/i18n』,利用第五章談到的nano來修改該文件的內(nèi)容,使LANG這個(gè)變量成為上述的內(nèi)容即可。

    • 第七欄為這個(gè)文件的檔名

    這個(gè)字段就是檔名了。比較特殊的是:如果檔名之前多一個(gè)『 . 』,則代表這個(gè)文件為『隱藏檔』,例如上表中的.gconf那一行,該文件就是隱藏檔。你可以使用『ls』及『ls -a』這兩個(gè)指令去感受一下什么是隱藏檔啰!

    Tips:
    對于更詳細(xì)的 ls 用法,還記得怎么查詢嗎?對啦!使用man ls 或 info ls 去看看他的基礎(chǔ)用法去!自我進(jìn)修是很重要的,因?yàn)椤簬煾祹нM(jìn)門,修行看個(gè)人!』,自古只有天才學(xué)生,沒有天才老師呦!加油吧!^_^

    這七個(gè)字段的意義是很重要的!務(wù)必清楚的知道各個(gè)字段代表的意義!尤其是第一個(gè)字段的九個(gè)權(quán)限,那是整個(gè)Linux文件權(quán)限的重點(diǎn)之一。底下我們來做幾個(gè)簡單的練習(xí),你就會(huì)比較清楚啰!

    例題: 假設(shè)test1, test2, test3同屬于testgroup這個(gè)群組,如果有下面的兩個(gè)文件,請說明兩個(gè)文件的擁有者與其相關(guān)的權(quán)限為何? -rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt -rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsai 答:
    • 文件test.txt的擁有者為root,所屬群組為root。至于權(quán)限方面則只有root這個(gè)賬號可以存取此文件,其他人則僅能讀此文件;

    • 另一個(gè)文件ping_tsai的擁有者為test1,而所屬群組為testgroup。其中:
      • test1 可以針對此文件具有可讀可寫可執(zhí)行的權(quán)力;
      • 而同群組的test2, test3兩個(gè)人與test1同樣是testgroup的群組賬號,則僅可讀可執(zhí)行但不能寫(亦即不能修改);
      • 至于非testgoup這一個(gè)群組的人則僅可以讀,不能寫也不能執(zhí)行!

    例題: 如果我的目錄為底下的樣式,請問testgroup這個(gè)群組的成員與其他人(others)是否可以進(jìn)入本目錄? drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/ 答:
    • 文件擁有者test1[rwx]可以在本目錄中進(jìn)行任何工作;
    • 而testgroup這個(gè)群組[r-x]的賬號,例如test2, test3亦可以進(jìn)入本目錄進(jìn)行工作,但是不能在本目錄下進(jìn)行寫入的動(dòng)作;
    • 至于other的權(quán)限中[r--]雖然有r ,但是由于沒有x的權(quán)限,因此others的使用者,并不能進(jìn)入此目錄!

    • Linux文件權(quán)限的重要性:

    與Windows系統(tǒng)不一樣的是,在Linux系統(tǒng)當(dāng)中,每一個(gè)文件都多加了很多的屬性進(jìn)來,尤其是群組的概念,這樣有什么用途呢?其實(shí),最大的用途是在『數(shù)據(jù)安全性』上面的。

    • 系統(tǒng)保護(hù)的功能:
      舉個(gè)簡單的例子,在你的系統(tǒng)中,關(guān)于系統(tǒng)服務(wù)的文件通常只有root才能讀寫或者是執(zhí)行,例如/etc/shadow這一個(gè)賬號管理的文件,由于該文件記錄了你系統(tǒng)中所有賬號的數(shù)據(jù),因此是很重要的一個(gè)配置文件,當(dāng)然不能讓任何人讀取(否則密碼會(huì)被竊取啊),只有root才能夠來讀取啰!所以該文件的權(quán)限就會(huì)成為[-rw------- ]啰!

    • 團(tuán)隊(duì)開發(fā)軟件或數(shù)據(jù)共享的功能:
      此外,如果你有一個(gè)軟件開發(fā)團(tuán)隊(duì),在你的團(tuán)隊(duì)中,你希望每個(gè)人都可以使用某一些目錄下的文件,而非你的團(tuán)隊(duì)的其他人則不予以開放呢?以上面的例子來說,testgroup的團(tuán)隊(duì)共有三個(gè)人,分別是test1, test2, test3,那么我就可以將團(tuán)隊(duì)所需的文件權(quán)限訂為[-rwxrwx--- ]來提供給testgroup的工作團(tuán)隊(duì)使用啰!

    • 未將權(quán)限設(shè)定妥當(dāng)?shù)奈:?#xff1a;
      再舉個(gè)例子來說,如果你的目錄權(quán)限沒有作好的話,可能造成其他人都可以在你的系統(tǒng)上面亂搞啰!例如本來只有root才能做的開關(guān)機(jī)、ADSL的撥接程序、新增或刪除用戶等等的指令,若被你改成任何人都可以執(zhí)行的話,那么如果使用者不小心給你重新啟動(dòng)啦!重新?lián)芙永?#xff01;等等的!那么你的系統(tǒng)不就會(huì)常常莫名其妙的掛掉啰!而且萬一你的用戶的密碼被其他不明人士取得的話,只要他登入你的系統(tǒng)就可以輕而易舉的執(zhí)行一些root的工作!

    可怕吧!因此,在你修改你的linux文件與目錄的屬性之前,一定要先搞清楚,什么數(shù)據(jù)是可變的,什么是不可變的!千萬注意啰!接下來我們來處理一下文件屬性與權(quán)限的變更吧!


    如何改變文件屬性與權(quán)限

    我們現(xiàn)在知道文件權(quán)限對于一個(gè)系統(tǒng)的安全重要性了,也知道文件的權(quán)限對于使用者與群組的相關(guān)性,那么如何修改一個(gè)文件的屬性與權(quán)限呢?又!有多少文件的權(quán)限我們可以修改呢?其實(shí)一個(gè)文件的屬性與權(quán)限有很多!我們先介紹幾個(gè)常用于群組、擁有者、各種身份的權(quán)限之修改的指令,如下所示:

    • chgrp :改變文件所屬群組
    • chown :改變文件擁有者
    • chmod :改變文件的權(quán)限, SUID, SGID, SBIT等等的特性

    • 改變所屬群組, chgrp

    改變一個(gè)文件的群組真是很簡單的,直接以chgrp來改變即可,咦!這個(gè)指令就是change group的縮寫嘛!這樣就很好記了吧! ^_^。不過,請記得,要被改變的組名必須要在/etc/group文件內(nèi)存在才行,否則就會(huì)顯示錯(cuò)誤!

    假設(shè)你是以root的身份登入Linux系統(tǒng)的,那么在你的家目錄內(nèi)有一個(gè)install.log的文件,如何將該文件的群組改變一下呢?假設(shè)你已經(jīng)知道在/etc/group里面已經(jīng)存在一個(gè)名為users的群組,但是testing這個(gè)群組名字就不存在/etc/group當(dāng)中了,此時(shí)改變?nèi)航M成為users與testing分別會(huì)有什么現(xiàn)象發(fā)生呢?

    [root@www ~]# chgrp [-R] dirname/filename ... 選項(xiàng)與參數(shù): -R : 進(jìn)行遞歸(recursive)的持續(xù)變更,亦即連同次目錄下的所有文件、目錄都更新成為這個(gè)群組之意。常常用在變更某一目錄內(nèi)所有的文件之情況。 范例: [root@www ~]# chgrp users install.log [root@www ~]# ls -l -rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log [root@www ~]# chgrp testing install.log chgrp: invalid group name `testing' <== 發(fā)生錯(cuò)誤訊息啰~找不到這個(gè)群組名~

    發(fā)現(xiàn)了嗎?文件的群組被改成users了,但是要改成testing的時(shí)候,就會(huì)發(fā)生錯(cuò)誤~注意喔!發(fā)生錯(cuò)誤訊息還是要努力的查一查錯(cuò)誤訊息的內(nèi)容才好!將他英文翻譯成為中文,就知道問題出在哪里了。


    • 改變文件擁有者, chown

    如何改變一個(gè)文件的擁有者呢?很簡單呀!既然改變?nèi)航M是change group,那么改變擁有者就是change owner啰!BINGO!那就是chown這個(gè)指令的用途,要注意的是,用戶必須是已經(jīng)存在系統(tǒng)中的賬號,也就是在/etc/passwd這個(gè)文件中有紀(jì)錄的用戶名稱才能改變。

    chown的用途還滿多的,他還可以順便直接修改群組的名稱呢!此外,如果要連目錄下的所有次目錄或文件同時(shí)更改文件擁有者的話,直接加上-R的選項(xiàng)即可!我們來看看語法與范例:

    [root@www ~]# chown [-R] 賬號名稱 文件或目錄 [root@www ~]# chown [-R] 賬號名稱:組名 文件或目錄 選項(xiàng)與參數(shù): -R : 進(jìn)行遞歸(recursive)的持續(xù)變更,亦即連同次目錄下的所有文件都變更范例:將install.log的擁有者改為bin這個(gè)賬號: [root@www ~]# chown bin install.log [root@www ~]# ls -l -rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log范例:將install.log的擁有者與群組改回為root: [root@www ~]# chown root:root install.log [root@www ~]# ls -l -rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
    Tips:
    事實(shí)上,chown也可以使用『chown user.group file』,亦即在擁有者與群組間加上小數(shù)點(diǎn)『.』也行!不過很多朋友設(shè)定賬號時(shí),喜歡在賬號當(dāng)中加入小數(shù)點(diǎn)(例如vbird.tsai這樣的賬號格式),這就會(huì)造成系統(tǒng)的誤判了!所以我們比較建議使用冒號『:』來隔開擁有者與群組啦!此外,chown也能單純的修改所屬群組呢!例如『chown .sshd install.log』就是修改群組~看到了嗎?就是那個(gè)小數(shù)點(diǎn)的用途!

    知道如何改變文件的群組與擁有者了,那么什么時(shí)候要使用chown或chgrp呢?或許你會(huì)覺得奇怪吧?是的,確實(shí)有時(shí)候需要變更文件的擁有者的,最常見的例子就是在復(fù)制文件給你之外的其他人時(shí),我們使用最簡單的cp指令來說明好了:

    [root@www ~]# cp 來源文件 目標(biāo)文件

    假設(shè)你今天要將.bashrc這個(gè)文件拷貝成為.bashrc_test檔名,且是要給bin這個(gè)人,你可以這樣做:

    [root@www ~]# cp .bashrc .bashrc_test [root@www ~]# ls -al .bashrc* -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc -rw-r--r-- 1 root root 395 Jul 13 11:31 .bashrc_test <==新文件的屬性沒變

    由于復(fù)制行為(cp)會(huì)復(fù)制執(zhí)行者的屬性與權(quán)限,所以!怎么辦?.bashrc_test還是屬于root所擁有,如此一來,即使你將文件拿給bin這個(gè)使用者了,那他仍然無法修改的(看屬性/權(quán)限就知道了吧),所以你就必須要將這個(gè)文件的擁有者與群組修改一下啰!知道如何修改了吧?


    • 改變權(quán)限, chmod

    文件權(quán)限的改變使用的是chmod這個(gè)指令,但是,權(quán)限的設(shè)定方法有兩種,分別可以使用數(shù)字或者是符號來進(jìn)行權(quán)限的變更。我們就來談一談:

    • 數(shù)字類型改變文件權(quán)限

      Linux文件的基本權(quán)限就有九個(gè),分別是owner/group/others三種身份各有自己的read/write/execute權(quán)限,先復(fù)習(xí)一下剛剛上面提到的數(shù)據(jù):文件的權(quán)限字符為:『-rwxrwxrwx』,這九個(gè)權(quán)限是三個(gè)三個(gè)一組的!其中,我們可以使用數(shù)字來代表各個(gè)權(quán)限,各權(quán)限的分?jǐn)?shù)對照表如下:
      r:4
      w:2
      x:1 每種身份(owner/group/others)各自的三個(gè)權(quán)限(r/w/x)分?jǐn)?shù)是需要累加的,例如當(dāng)權(quán)限為:[-rwxrwx---] 分?jǐn)?shù)則是: owner = rwx = 4+2+1 = 7
      group = rwx = 4+2+1 = 7
      others= --- = 0+0+0 = 0 所以等一下我們設(shè)定權(quán)限的變更時(shí),該文件的權(quán)限數(shù)字就是770啦!變更權(quán)限的指令chmod的語法是這樣的:
      [root@www ~]# chmod [-R] xyz 文件或目錄 選項(xiàng)與參數(shù): xyz : 就是剛剛提到的數(shù)字類型的權(quán)限屬性,為 rwx 屬性數(shù)值的相加。 -R : 進(jìn)行遞歸(recursive)的持續(xù)變更,亦即連同次目錄下的所有文件都會(huì)變更
      舉例來說,如果要將.bashrc這個(gè)文件所有的權(quán)限都設(shè)定啟用,那么就下達(dá):
      [root@www ~]# ls -al .bashrc -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc [root@www ~]# chmod 777 .bashrc [root@www ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
      那如果要將權(quán)限變成『 -rwxr-xr-- 』呢?那么權(quán)限的分?jǐn)?shù)就成為[4+2+1][4+0+1][4+0+0]=754 啰!所以你需要下達(dá)『chmod 754 filename』。另外,在實(shí)際的系統(tǒng)運(yùn)作中最常發(fā)生的一個(gè)問題就是,常常我們以vim編輯一個(gè)shell的文字批處理文件后,他的權(quán)限通常是 -rw-rw-r-- 也就是664,如果要將該文件變成可執(zhí)行文件,并且不要讓其他人修改此一文件的話,那么就需要-rwxr-xr-x這樣的權(quán)限,此時(shí)就得要下達(dá):『chmod 755 test.sh 』的指令啰!

      另外,如果有些文件你不希望被其他人看到,那么應(yīng)該將文件的權(quán)限設(shè)定為例如:『-rwxr-----』,那就下達(dá)『chmod 740 filename 』吧!

      例題: 將剛剛你的.bashrc這個(gè)文件的權(quán)限修改回-rw-r--r--的情況吧! 答: -rw-r--r--的分?jǐn)?shù)是644,所以指令為:
      chmod 644 .bashrc

    • 符號類型改變文件權(quán)限

      還有一個(gè)改變權(quán)限的方法呦!從之前的介紹中我們可以發(fā)現(xiàn),基本上就九個(gè)權(quán)限分別是(1)user (2)group (3)others三種身份啦!那么我們就可以藉由u, g, o來代表三種身份的權(quán)限!此外,a 則代表 all 亦即全部的身份!那么讀寫的權(quán)限就可以寫成r, w, x!也就是可以使用底下的方式來看:

      chmodu
      g
      o
      a
      +(加入)
      -(除去)
      =(設(shè)定)
      r
      w
      x
      文件或目錄

      來實(shí)作一下吧!假如我們要『設(shè)定』一個(gè)文件的權(quán)限成為『-rwxr-xr-x』時(shí),基本上就是:

      • user (u):具有可讀、可寫、可執(zhí)行的權(quán)限;
      • group 與 others (g/o):具有可讀與執(zhí)行的權(quán)限。

      所以就是:
      [root@www ~]# chmod u=rwx,go=rx .bashrc # 注意喔!那個(gè) u=rwx,go=rx 是連在一起的,中間并沒有任何空格! [root@www ~]# ls -al .bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
      那么假如是『 -rwxr-xr-- 』這樣的權(quán)限呢?可以使用『 chmod u=rwx,g=rx,o=r filename 』來設(shè)定。此外,如果我不知道原先的文件屬性,而我只想要增加.bashrc這個(gè)文件的每個(gè)人均可寫入的權(quán)限,那么我就可以使用:
      [root@www ~]# ls -al .bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc [root@www ~]# chmod a+w .bashrc [root@www ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
      而如果是要將權(quán)限去掉而不更動(dòng)其他已存在的權(quán)限呢?例如要拿掉全部人的可執(zhí)行權(quán)限,則:
      [root@www ~]# chmod a-x .bashrc [root@www ~]# ls -al .bashrc -rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc
      知道 +, -, = 的不同點(diǎn)了嗎?對啦! + 與 – 的狀態(tài)下,只要是沒有指定到的項(xiàng)目,則該權(quán)限『不會(huì)被變動(dòng)』,例如上面的例子中,由于僅以 – 拿掉 x 則其他兩個(gè)保持當(dāng)時(shí)的值不變!多多實(shí)作一下,你就會(huì)知道如何改變權(quán)限啰!這在某些情況底下很好用的~舉例來說,你想要教一個(gè)朋友如何讓一個(gè)程序可以擁有執(zhí)行的權(quán)限,但你又不知道該文件原本的權(quán)限為何,此時(shí),利用『chmod a+x filename』 ,就可以讓該程序擁有執(zhí)行的權(quán)限了。是否很方便?

    目錄與文件之權(quán)限意義:

    現(xiàn)在我們知道了Linux系統(tǒng)內(nèi)文件的三種身份(擁有者、群組與其他人),知道每種身份都有三種權(quán)限(rwx),已知道能夠使用chown, chgrp, chmod去修改這些權(quán)限與屬性,當(dāng)然,利用ls -l去觀察文件也沒問題。前兩小節(jié)也談到了這些文件權(quán)限對于數(shù)據(jù)安全的重要性。那么,這些文件權(quán)限對于一般文件與目錄文件有何不同呢?有大大的不同啊!底下就讓鳥哥來說清楚,講明白!


    • 權(quán)限對文件的重要性

    文件是實(shí)際含有數(shù)據(jù)的地方,包括一般文本文件、數(shù)據(jù)庫內(nèi)容文件、二進(jìn)制可執(zhí)行文件(binary program)等等。因此,權(quán)限對于文件來說,他的意義是這樣的:

    • r (read):可讀取此一文件的實(shí)際內(nèi)容,如讀取文本文件的文字內(nèi)容等;
    • w (write):可以編輯、新增或者是修改該文件的內(nèi)容(但不含刪除該文件);
    • x (execute):該文件具有可以被系統(tǒng)執(zhí)行的權(quán)限。

    那個(gè)可讀(r)代表讀取文件內(nèi)容是還好了解,那么可執(zhí)行(x)呢?這里你就必須要小心啦!因?yàn)樵赪indows底下一個(gè)文件是否具有執(zhí)行的能力是藉由『 擴(kuò)展名 』來判斷的,例如:.exe, .bat, .com 等等,但是在Linux底下,我們的文件是否能被執(zhí)行,則是藉由是否具有『x』這個(gè)權(quán)限來決定的!跟檔名是沒有絕對的關(guān)系的

    至于最后一個(gè)w這個(gè)權(quán)限呢?當(dāng)你對一個(gè)文件具有w權(quán)限時(shí),你可以具有寫入/編輯/新增/修改文件的內(nèi)容的權(quán)限,但并不具備有刪除該文件本身的權(quán)限!對于文件的rwx來說,主要都是針對『文件的內(nèi)容』而言,與文件檔名的存在與否沒有關(guān)系喔!因?yàn)槲募涗浀氖菍?shí)際的數(shù)據(jù)嘛!


    • 權(quán)限對目錄的重要性

    文件是存放實(shí)際數(shù)據(jù)的所在,那么目錄主要是儲(chǔ)存啥玩意啊?目錄主要的內(nèi)容在記錄文件名列表,文件名與目錄有強(qiáng)烈的關(guān)連啦!所以如果是針對目錄時(shí),那個(gè) r, w, x 對目錄是什么意義呢?

    • r (read contents in directory)

      表示具有讀取目錄結(jié)構(gòu)列表的權(quán)限,所以當(dāng)你具有讀取(r)一個(gè)目錄的權(quán)限時(shí),表示你可以查詢該目錄下的文件名數(shù)據(jù)。所以你就可以利用 ls 這個(gè)指令將該目錄的內(nèi)容列表顯示出來!

    • w (modify contents of directory)

      這個(gè)可寫入的權(quán)限對目錄來說,是很了不起的!因?yàn)樗硎灸憔哂挟悇?dòng)該目錄結(jié)構(gòu)列表的權(quán)限,也就是底下這些權(quán)限:

      • 建立新的文件與目錄;
      • 刪除已經(jīng)存在的文件與目錄(不論該文件的權(quán)限為何!)
      • 將已存在的文件或目錄進(jìn)行更名;
      • 搬移該目錄內(nèi)的文件、目錄位置。

      總之,目錄的w權(quán)限就與該目錄底下的文件名異動(dòng)有關(guān)就對了啦!

    • x (access directory)

      咦!目錄的執(zhí)行權(quán)限有啥用途啊?目錄只是記錄文件名而已,總不能拿來執(zhí)行吧?沒錯(cuò)!目錄不可以被執(zhí)行,目錄的x代表的是用戶能否進(jìn)入該目錄成為工作目錄的用途!所謂的工作目錄(work directory)就是你目前所在的目錄啦!舉例來說,當(dāng)你登入Linux時(shí),你所在的家目錄就是你當(dāng)下的工作目錄。而變換目錄的指令是『cd』(change directory)啰!

    大致的目錄權(quán)限概念是這樣,底下我們來看幾個(gè)范例,讓你了解一下啥是目錄的權(quán)限啰!

    例題: 有個(gè)目錄的權(quán)限如下所示: drwxr--r-- 3 root root 4096 Jun 25 08:35 .ssh 系統(tǒng)有個(gè)賬號名稱為vbird,這個(gè)賬號并沒有支持root群組,請問vbird對這個(gè)目錄有何權(quán)限?是否可切換到此目錄中? 答: vbird對此目錄僅具有r的權(quán)限,因此vbird可以查詢此目錄下的文件名列表。因?yàn)関bird不具有x的權(quán)限,因此vbird并不能切換到此目錄內(nèi)!(相當(dāng)重要的概念!)

    上面這個(gè)例題中因?yàn)関bird具有r的權(quán)限,因?yàn)槭莚乍看之下好像就具有可以進(jìn)入此目錄的權(quán)限,其實(shí)那是錯(cuò)的。能不能進(jìn)入某一個(gè)目錄,只與該目錄的x權(quán)限有關(guān)啦!此外,工作目錄對于指令的執(zhí)行是非常重要的,如果你在某目錄下不具有x的權(quán)限,那么你就無法切換到該目錄下,也就無法執(zhí)行該目錄下的任何指令,即使你具有該目錄的r的權(quán)限。

    很多朋友在架設(shè)網(wǎng)站的時(shí)候都會(huì)卡在一些權(quán)限的設(shè)定上,他們開放目錄數(shù)據(jù)給因特網(wǎng)的任何人來瀏覽,卻只開放r的權(quán)限,如上面的范例所示那樣,那樣的結(jié)果就是導(dǎo)致網(wǎng)站服務(wù)器軟件無法到該目錄下讀取文件(最多只能看到檔名),最終用戶總是無法正確的查閱到文件的內(nèi)容(顯示權(quán)限不足啊!)。要注意:要開放目錄給任何人瀏覽時(shí),應(yīng)該至少也要給予r及x的權(quán)限,但w權(quán)限不可隨便給!為什么w不能隨便給,我們來看下一個(gè)例子:

    例題: 假設(shè)有個(gè)賬號名稱為dmtsai,他的家目錄在/home/dmtsai/,dmtsai對此目錄具有[rwx]的權(quán)限。若在此目錄下有個(gè)名為the_root.data的文件,該文件的權(quán)限如下: -rwx------ 1 root root 4365 Sep 19 23:20 the_root.data 請問dmtsai對此文件的權(quán)限為何?可否刪除此文件? 答: 如上所示,由于dmtsai對此文件來說是『others』的身份,因此這個(gè)文件他無法讀、無法編輯也無法執(zhí)行,也就是說,他無法變動(dòng)這個(gè)文件的內(nèi)容就是了。

    但是由于這個(gè)文件在他的家目錄下,他在此目錄下具有rwx的完整權(quán)限,因此對于the_root.data這個(gè)『檔名』來說,他是能夠『刪除』的!結(jié)論就是,dmtsai這個(gè)用戶能夠刪除the_root.data這個(gè)文件!

    還是看不太懂?有聽沒有懂喔!沒關(guān)系~我們底下就來設(shè)計(jì)一個(gè)練習(xí),讓你實(shí)際玩玩看,應(yīng)該就能夠比較近入狀況啦!不過,由于很多指令我們還沒有教,所以底下的指令有的先了解即可,詳細(xì)的指令用法我們會(huì)在后面繼續(xù)介紹的。

    • 先用root的身份建立所需要的文件與目錄環(huán)境

    我們用root的身份在所有人都可以工作的/tmp目錄中建立一個(gè)名為testing的目錄,該目錄的權(quán)限為744且目錄擁有者為root。另外,在testing目錄下在建立一個(gè)空的文件,檔名亦為testing。建立目錄可用mkdir(make directory),建立空文件可用touch(下一章會(huì)說明)來處理。所以過程如下所示:

    [root@www ~]# cd /tmp <==切換工作目錄到/tmp [root@www tmp]# mkdir testing <==建立新目錄 [root@www tmp]# chmod 744 testing <==變更權(quán)限 [root@www tmp]# touch testing/testing <==建立空的文件 [root@www tmp]# chmod 600 testing/testing <==變更權(quán)限 [root@www tmp]# ls -ald testing testing/testing drwxr--r-- 2 root root 4096 Sep 19 16:01 testing -rw------- 1 root root 0 Sep 19 16:01 testing/testing # 仔細(xì)看一下,目錄的權(quán)限是 744 ,且所屬群組與使用者均是 root 喔! # 那么在這樣的情況底下,一般身份用戶對這個(gè)目錄/文件的權(quán)限為何?
    • 一般用戶的讀寫權(quán)限為何?觀察中

    在上面的例子中,雖然目錄是744的權(quán)限設(shè)定,一般用戶應(yīng)該能有 r 的權(quán)限,但這樣的權(quán)限使用者能做啥事呢?假設(shè)鳥哥的系統(tǒng)中含有一個(gè)賬號名為 vbird 的,我們可以透過『 su - vbird 』這個(gè)指令來變換身份喔!看看底下的操作先!

    [root@www tmp]# su - vbird <==切換身份成為 vbird 啰! [vbird@www ~]$ cd /tmp <==看一下,身份變了喔!提示字符也變成 $ 了! [vbird@www tmp]$ ls -l testing/ ?--------- ? ? ? ? ? testing # 因?yàn)榫哂?r 的權(quán)限可以查詢檔名。不過權(quán)限不足(沒有x),所以會(huì)有一堆問號。 [vbird@www tmp]$ cd testing/ -bash: cd: testing/: Permission denied # 因?yàn)椴痪哂?x ,所以當(dāng)然沒有進(jìn)入的權(quán)限啦!有沒有呼應(yīng)前面的權(quán)限說明啊!
    • 如果該目錄屬于用戶本身,會(huì)有什么狀況?

    上面的練習(xí)我們知道了只有r確實(shí)可以讓用戶讀取目錄的文件名列表,不過詳細(xì)的信息卻還是讀不到的,同時(shí)也不能將該目錄變成工作目錄(用 cd 進(jìn)入該目錄之意)。那如果我們讓該目錄變成用戶的,那么用戶在這個(gè)目錄底下是否能夠刪除文件呢?底下的練習(xí)做看看:

    [vbird@www tmp]$ exit <==讓 vbird 變回原本的 root 身份喔! [root@www tmp]# chown vbird testing <==修改權(quán)限,讓vbird擁有此目錄 [root@www tmp]# su - vbird <==再次變成vbird來操作 [vbird@www ~]$ cd /tmp/testing <==可以進(jìn)入目錄了呢! [vbird@www testing]$ ls -l -rw------- 1 root root 0 Sep 19 16:01 testing <==文件不是vbird的! [vbird@www testing]$ rm testing <==嘗試刪除這個(gè)文件看看! rm: remove write-protected regular empty file `testing'? y # 竟然可以刪除!這樣理解了嗎?!

    透過上面這個(gè)簡單的步驟,你就可以清楚的知道, x 在目錄當(dāng)中是與『能否進(jìn)入該目錄』有關(guān),至于那個(gè) w 則具有相當(dāng)重要的權(quán)限,因?yàn)樗梢宰屖褂谜邉h除、更新、新建文件或目錄,是個(gè)很重要的參數(shù)啊!這樣可以理解了嗎?! ^_^


    Linux文件種類與擴(kuò)展名

    我們在基礎(chǔ)篇一直強(qiáng)調(diào)一個(gè)概念,那就是:任何裝置在Linux底下都是文件,不僅如此,連數(shù)據(jù)溝通的接口也有專屬的文件在負(fù)責(zé)~所以,你會(huì)了解到,Linux的文件種類真的很多~除了前面提到的一般文件(-)與目錄文件(d)之外,還有哪些種類的文件呢?


    • 文件種類:

    我們在剛剛提到使用『ls -l』觀察到第一欄那十個(gè)字符中,第一個(gè)字符為文件的類型。除了常見的一般文件(-)與目錄文件(d)之外,還有哪些種類的文件類型呢?

    • 正規(guī)文件(regular file )
      就是一般我們在進(jìn)行存取的類型的文件,在由 ls -al 所顯示出來的屬性方面,第一個(gè)字符為 [ - ],例如 [-rwxrwxrwx ]。另外,依照文件的內(nèi)容,又大略可以分為:

      • 純文本檔(ASCII):這是Linux系統(tǒng)中最多的一種文件類型啰,稱為純文本檔是因?yàn)閮?nèi)容為我們?nèi)祟惪梢灾苯幼x到的數(shù)據(jù),例如數(shù)字、字母等等。幾乎只要我們可以用來做為設(shè)定的文件都屬于這一種文件類型。舉例來說,你可以下達(dá)『 cat ~/.bashrc 』就可以看到該文件的內(nèi)容。(cat 是將一個(gè)文件內(nèi)容讀出來的指令)

      • 二進(jìn)制文件(binary):還記得我們在『第零章、計(jì)算器概論 』里面的軟件程序的運(yùn)作中提過,我們的系統(tǒng)其實(shí)僅認(rèn)識(shí)且可以執(zhí)行二進(jìn)制文件(binary file)吧?沒錯(cuò)~你的Linux當(dāng)中的可執(zhí)行文件(scripts, 文字型批處理文件不算)就是這種格式的啦~舉例來說,剛剛下達(dá)的指令cat就是一個(gè)binary file。

      • 數(shù)據(jù)格式文件(data):有些程序在運(yùn)作的過程當(dāng)中會(huì)讀取某些特定格式的文件,那些特定格式的文件可以被稱為數(shù)據(jù)文件 (data file)。舉例來說,我們的Linux在使用者登入時(shí),都會(huì)將登錄的數(shù)據(jù)記錄在/var/log/wtmp那個(gè)文件內(nèi),該文件是一個(gè)data file,他能夠透過last這個(gè)指令讀出來!但是使用cat時(shí),會(huì)讀出亂碼~因?yàn)樗菍儆谝环N特殊格式的文件。瞭乎?

    • 目錄(directory)
      就是目錄啰~第一個(gè)屬性為 [ d ],例如 [drwxrwxrwx]。

    • 連結(jié)檔(link)
      就是類似Windows系統(tǒng)底下的快捷方式啦!第一個(gè)屬性為 [ l ](英文L的小寫),例如 [lrwxrwxrwx] ;

    • 設(shè)備與裝置文件(device)
      與系統(tǒng)周邊及儲(chǔ)存等相關(guān)的一些文件,通常都集中在/dev這個(gè)目錄之下!通常又分為兩種:

      • 區(qū)塊(block)設(shè)備檔 :就是一些儲(chǔ)存數(shù)據(jù),以提供系統(tǒng)隨機(jī)存取的接口設(shè)備,舉例來說,硬盤與軟盤等就是啦!你可以隨機(jī)的在硬盤的不同區(qū)塊讀寫,這種裝置就是成組設(shè)備啰!你可以自行查一下/dev/sda看看,會(huì)發(fā)現(xiàn)第一個(gè)屬性為[ b ]喔!

      • 字符(character)設(shè)備文件:亦即是一些串行端口的接口設(shè)備,例如鍵盤、鼠標(biāo)等等!這些設(shè)備的特色就是『一次性讀取』的,不能夠截?cái)噍敵觥Ee例來說,你不可能讓鼠標(biāo)『跳到』另一個(gè)畫面,而是『滑動(dòng)』到另一個(gè)地方啊!第一個(gè)屬性為 [ c ]。

    • 數(shù)據(jù)接口文件(sockets)
      既然被稱為數(shù)據(jù)接口文件,想當(dāng)然爾,這種類型的文件通常被用在網(wǎng)絡(luò)上的數(shù)據(jù)承接了。我們可以啟動(dòng)一個(gè)程序來監(jiān)聽客戶端的要求,而客戶端就可以透過這個(gè)socket來進(jìn)行數(shù)據(jù)的溝通了。第一個(gè)屬性為 [ s ],最常在/var/run這個(gè)目錄中看到這種文件類型了。

    • 數(shù)據(jù)輸送文件(FIFO, pipe)
      FIFO也是一種特殊的文件類型,他主要的目的在解決多個(gè)程序同時(shí)存取一個(gè)文件所造成的錯(cuò)誤問題。FIFO是first-in-first-out的縮寫。第一個(gè)屬性為[p] 。

    除了設(shè)備文件是我們系統(tǒng)中很重要的文件,最好不要隨意修改之外(通常他也不會(huì)讓你修改的啦!),另一個(gè)比較有趣的文件就是連結(jié)檔。如果你常常將應(yīng)用程序捉到桌面來的話,你就應(yīng)該知道在Windows底下有所謂的『快捷方式』。同樣的,你可以將linux下的連結(jié)檔簡單的視為一個(gè)文件或目錄的快捷方式。至于socket與FIFO文件比較難理解,因?yàn)檫@兩個(gè)咚咚與程序(process)比較有關(guān)系,這個(gè)等到未來你了解process之后,再回來查閱吧!此外,你也可以透過man fifo及man socket來查閱系統(tǒng)上的說明!


    • Linux文件擴(kuò)展名:

    基本上,Linux的文件是沒有所謂的『擴(kuò)展名』的,我們剛剛就談過,一個(gè)Linux文件能不能被執(zhí)行,與他的第一欄的十個(gè)屬性有關(guān),與檔名根本一點(diǎn)關(guān)系也沒有。這個(gè)觀念跟Windows的情況不相同喔!在Windows底下,能被執(zhí)行的文件擴(kuò)展名通常是 .com .exe .bat等等,而在Linux底下,只要你的權(quán)限當(dāng)中具有x的話,例如[ -rwx-r-xr-x ]即代表這個(gè)文件可以被執(zhí)行喔

    不過,可以被執(zhí)行跟可以執(zhí)行成功是不一樣的~舉例來說,在root家目錄下的install.log 是一個(gè)純文本檔,如果經(jīng)由修改權(quán)限成為 -rwxrwxrwx 后,這個(gè)文件能夠真的執(zhí)行成功嗎?當(dāng)然不行~因?yàn)樗膬?nèi)容根本就沒有可以執(zhí)行的數(shù)據(jù)。所以說,這個(gè)x代表這個(gè)文件具有可執(zhí)行的能力,但是能不能執(zhí)行成功,當(dāng)然就得要看該文件的內(nèi)容啰~

    雖然如此,不過我們?nèi)匀幌M梢越逵蓴U(kuò)展名來了解該文件是什么東西,所以,通常我們還是會(huì)以適當(dāng)?shù)臄U(kuò)展名來表示該文件是什么種類的。底下有數(shù)種常用的擴(kuò)展名:

    • *.sh : 腳本或批處理文件 (scripts),因?yàn)榕幚砦募槭褂胹hell寫成的,所以擴(kuò)展名就編成 .sh ;

    • *Z, *.tar, *.tar.gz, *.zip, *.tgz: 經(jīng)過打包的壓縮文件。這是因?yàn)閴嚎s軟件分別為 gunzip, tar 等等的,由于不同的壓縮軟件,而取其相關(guān)的擴(kuò)展名啰!

    • *.html, *.php:網(wǎng)頁相關(guān)文件,分別代表 HTML 語法與 PHP 語法的網(wǎng)頁文件啰!.html 的文件可使用網(wǎng)頁瀏覽器來直接開啟,至于 .php 的文件,則可以透過 client 端的瀏覽器來 server 端瀏覽,以得到運(yùn)算后的網(wǎng)頁結(jié)果呢!

    基本上,Linux系統(tǒng)上的文件名真的只是讓你了解該文件可能的用途而已,真正的執(zhí)行與否仍然需要權(quán)限的規(guī)范才行!例如雖然有一個(gè)文件為可執(zhí)行文件,如常見的/bin/ls這個(gè)顯示文件屬性的指令,不過,如果這個(gè)文件的權(quán)限被修改成無法執(zhí)行時(shí),那么ls就變成不能執(zhí)行啰!

    上述的這種問題最常發(fā)生在文件傳送的過程中。例如你在網(wǎng)絡(luò)上下載一個(gè)可執(zhí)行文件,但是偏偏在你的Linux系統(tǒng)中就是無法執(zhí)行!呵呵!那么就是可能文件的屬性被改變了!不要懷疑,從網(wǎng)絡(luò)上傳送到你的Linux系統(tǒng)中,文件的屬性與權(quán)限確實(shí)是會(huì)被改變的喔!


    • Linux文件長度限制:

    在Linux底下,使用預(yù)設(shè)的Ext2/Ext3文件系統(tǒng)時(shí),針對文件的檔名長度限制為:

    • 單一文件或目錄的最大容許文件名為 255 個(gè)字符;
    • 包含完整路徑名稱及目錄 (/) 之完整檔名為 4096 個(gè)字符。

    是相當(dāng)長的檔名喔!我們希望Linux的文件名可以一看就知道該文件在干嘛的,所以檔名通常是很長很長!而用慣了Windows的人可能會(huì)受不了,因?yàn)槲募ǔU娴亩己荛L,對于用慣Windows而導(dǎo)致打字速度不快的朋友來說,嗯!真的是很困擾.....不過,只得勸你好好的加強(qiáng)打字的訓(xùn)練!

    而由第五章談到的熱鍵你也會(huì)知道,其實(shí)可以透過[tab]按鍵來確認(rèn)文件的文件名的!這很好用啊!當(dāng)然啦,如果你已經(jīng)讀完了本書第三篇關(guān)于BASH的用法,那么你將會(huì)發(fā)現(xiàn)『哇!變量真是一個(gè)相當(dāng)好用的東西吶!』 嗯!看不懂,沒關(guān)系,到第三篇談到bash再說!


    • Linux文件名的限制:

    由于Linux在文字接口下的一些指令操作關(guān)系,一般來說,你在設(shè)定Linux底下的文件名時(shí),最好可以避免一些特殊字符比較好!例如底下這些:

    * ? > < ; & ! [ ] | \ ' " ` ( ) { }

    因?yàn)檫@些符號在文字接口下,是有特殊意義的!另外,文件名的開頭為小數(shù)點(diǎn)『.』時(shí),代表這個(gè)文件為『隱藏檔』喔!同時(shí),由于指令下達(dá)當(dāng)中,常常會(huì)使用到 -option 之類的選項(xiàng),所以你最好也避免將文件檔名的開頭以 - 或 + 來命名啊!


    Linux目錄配置

    在了解了每個(gè)文件的相關(guān)種類與屬性,以及了解了如何更改文件屬性/權(quán)限的相關(guān)信息后,再來要了解的就是,為什么每套Linux distributions他們的配置文件啊、執(zhí)行文件啊、每個(gè)目錄內(nèi)放置的咚咚啊,其實(shí)都差不多?原來是有一套標(biāo)準(zhǔn)依據(jù)的哩!我們底下就來瞧一瞧。


    Linux目錄配置的依據(jù)--FHS

    因?yàn)槔肔inux來開發(fā)產(chǎn)品或distributions的社群/公司與個(gè)人實(shí)在太多了,如果每個(gè)人都用自己的想法來配置文件放置的目錄,那么將可能造成很多管理上的困擾。你能想象,你進(jìn)入一個(gè)企業(yè)之后,所接觸到的Linux目錄配置方法竟然跟你以前學(xué)的完全不同嗎?很難想象吧~所以,后來就有所謂的Filesystem Hierarchy Standard (FHS)標(biāo)準(zhǔn)的出爐了!

    根據(jù)FHS(http://www.pathname.com/fhs/)的官方文件指出,他們的主要目的是希望讓使用者可以了解到已安裝軟件通常放置于那個(gè)目錄下,所以他們希望獨(dú)立的軟件開發(fā)商、操作系統(tǒng)制作者、以及想要維護(hù)系統(tǒng)的用戶,都能夠遵循FHS的標(biāo)準(zhǔn)。也就是說,FHS的重點(diǎn)在于規(guī)范每個(gè)特定的目錄下應(yīng)該要放置什么樣子的數(shù)據(jù)而已。這樣做好處非常多,因?yàn)長inux操作系統(tǒng)就能夠在既有的面貌下(目錄架構(gòu)不變)發(fā)展出開發(fā)者想要的獨(dú)特風(fēng)格。

    事實(shí)上,FHS是根據(jù)過去的經(jīng)驗(yàn)一直再持續(xù)的改版的,FHS依據(jù)文件系統(tǒng)使用的頻繁與否與是否允許使用者隨意更動(dòng),而將目錄定義成為四種交互作用的形態(tài),用表格來說有點(diǎn)像底下這樣:

    ?可分享的(shareable)不可分享的(unshareable)
    不變的(static)/usr (軟件放置處)/etc (配置文件)
    ?/opt (第三方協(xié)力軟件)/boot (開機(jī)與核心檔)
    可變動(dòng)的(variable)/var/mail (使用者郵件信箱)/var/run (程序相關(guān))
    ?/var/spool/news (新聞組)/var/lock (程序相關(guān))

    上表中的目錄就是一些代表性的目錄,該目錄底下所放置的數(shù)據(jù)在底下會(huì)談到,這里先略過不談。我們要了解的是,什么是那四個(gè)類型?

    • 可分享的:可以分享給其他系統(tǒng)掛載使用的目錄,所以包括執(zhí)行文件與用戶的郵件等數(shù)據(jù),是能夠分享給網(wǎng)絡(luò)上其他主機(jī)掛載用的目錄;

    • 不可分享的:自己機(jī)器上面運(yùn)作的裝置文件或者是與程序有關(guān)的socket文件等,由于僅與自身機(jī)器有關(guān),所以當(dāng)然就不適合分享給其他主機(jī)了。

    • 不變的:有些數(shù)據(jù)是不會(huì)經(jīng)常變動(dòng)的,跟隨著distribution而不變動(dòng)。例如函式庫、文件說明文件、系統(tǒng)管理員所管理的主機(jī)服務(wù)配置文件等等;

    • 可變動(dòng)的:經(jīng)常改變的數(shù)據(jù),例如登錄文件、一般用戶可自行收受的新聞組等。

    事實(shí)上,FHS針對目錄樹架構(gòu)僅定義出三層目錄底下應(yīng)該放置什么數(shù)據(jù)而已,分別是底下這三個(gè)目錄的定義:

    • / (root, 根目錄):與開機(jī)系統(tǒng)有關(guān);
    • /usr (unix software resource):與軟件安裝/執(zhí)行有關(guān);
    • /var (variable):與系統(tǒng)運(yùn)作過程有關(guān)。

    為什么要定義出這三層目錄呢?其實(shí)是有意義的喔!每層目錄底下所應(yīng)該要放置的目錄也都又特定的規(guī)定喔!由于我們尚未介紹完整的Linux系統(tǒng),所以底下的介紹你可能會(huì)看不懂!沒關(guān)系,先有個(gè)概念即可,等到妳將基礎(chǔ)篇全部看完后,就重頭將基礎(chǔ)篇再看一遍!到時(shí)候你就會(huì)豁然開朗啦!^_^

    Tips:
    這個(gè) root 在 Linux 里面的意義真的很多很多~多到讓人搞不懂那是啥玩意兒。如果以『賬號』的角度來看,所謂的 root 指的是『系統(tǒng)管理員!』的身份,如果以『目錄』的角度來看,所謂的 root 意即指的是根目錄,就是 / 啦~要特別留意喔!

    • 根目錄 (/) 的意義與內(nèi)容:

    根目錄是整個(gè)系統(tǒng)最重要的一個(gè)目錄,因?yàn)椴坏械哪夸浂际怯筛夸浹苌鰜淼?#xff0c;同時(shí)根目錄也與開機(jī)/還原/系統(tǒng)修復(fù)等動(dòng)作有關(guān)。由于系統(tǒng)開機(jī)時(shí)需要特定的開機(jī)軟件、核心文件、開機(jī)所需程序、函式庫等等文件數(shù)據(jù),若系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),根目錄也必須要包含有能夠修復(fù)文件系統(tǒng)的程序才行。因?yàn)楦夸浭沁@么的重要,所以在FHS的要求方面,他希望根目錄不要放在非常大的分割槽內(nèi),因?yàn)樵酱蟮姆指畈蹔厱?huì)放入越多的數(shù)據(jù),如此一來根目錄所在分割槽就可能會(huì)有較多發(fā)生錯(cuò)誤的機(jī)會(huì)。

    因此FHS標(biāo)準(zhǔn)建議:根目錄(/)所在分割槽應(yīng)該越小越好,且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個(gè)分割槽內(nèi),保持根目錄越小越好。如此不但效能較佳,根目錄所在的文件系統(tǒng)也較不容易發(fā)生問題。

    有鑒于上述的說明,因此FHS定義出根目錄(/)底下應(yīng)該要有底下這些次目錄的存在才好:

    目錄應(yīng)放置文件內(nèi)容
    /bin系統(tǒng)有很多放置執(zhí)行文件的目錄,但/bin比較特殊。因?yàn)?span id="ozvdkddzhkzd" class="text_import2">/bin放置的是在單人維護(hù)模式下還能夠被操作的指令。在/bin底下的指令可以被root與一般賬號所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。
    /boot這個(gè)目錄主要在放置開機(jī)會(huì)使用到的文件,包括Linux核心文件以及開機(jī)選單與開機(jī)所需配置文件等等。Linux kernel常用的檔名為:vmlinuz,如果使用的是grub這個(gè)開機(jī)管理程序,則還會(huì)存在/boot/grub/這個(gè)目錄喔!
    /dev在Linux系統(tǒng)上,任何裝置與接口設(shè)備都是以文件的型態(tài)存在于這個(gè)目錄當(dāng)中的。你只要透過存取這個(gè)目錄底下的某個(gè)文件,就等于存取某個(gè)裝置啰~比要重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等
    /etc系統(tǒng)主要的配置文件幾乎都放置在這個(gè)目錄內(nèi),例如人員的賬號密碼文件、各種服務(wù)的啟始檔等等。一般來說,這個(gè)目錄下的各文件屬性是可以讓一般使用者查閱的,但是只有root有權(quán)力修改。FHS建議不要放置可執(zhí)行文件(binary)在這個(gè)目錄中喔。比較重要的文件有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等。另外,其下重要的目錄有:
    • /etc/init.d/:所有服務(wù)的預(yù)設(shè)啟動(dòng) script都是放在這里的,例如要啟動(dòng)或者關(guān)閉 iptables 的話:『 /etc/init.d/iptables start』、『/etc/init.d/iptables stop』
    • /etc/xinetd.d/:這就是所謂的super daemon管理的各項(xiàng)服務(wù)的配置文件目錄。
    • /etc/X11/:與 X Window 有關(guān)的各種配置文件都在這里,尤其是xorg.conf 這個(gè) X Server 的配置文件。
    /home這是系統(tǒng)默認(rèn)的用戶家目錄(home directory)。在你新增一個(gè)一般使用者賬號時(shí),默認(rèn)的用戶家目錄都會(huì)規(guī)范到這里來。比較重要的是,家目錄有兩種代號喔:
    ~:代表目前這個(gè)用戶的家目錄,而
    ~dmtsai :則代表 dmtsai 的家目錄!
    /lib系統(tǒng)的函式庫非常的多,而/lib放置的則是在開機(jī)時(shí)會(huì)用到的函式庫,以及在/bin或/sbin底下的指令會(huì)呼叫的函式庫而已。什么是函式庫呢?妳可以將他想成是『外掛』,某些指令必須要有這些『外掛』才能夠順利完成程序的執(zhí)行之意。尤其重要的是/lib/modules/這個(gè)目錄,因?yàn)樵撃夸洉?huì)放置核心相關(guān)的模塊(驅(qū)動(dòng)程序)喔!
    /mediamedia是『媒體』的英文,顧名思義,這個(gè)/media底下放置的就是可移除的裝置啦!包括軟盤、光盤、DVD等等裝置都暫時(shí)掛載于此。常見的檔名有:/media/floppy, /media/cdrom等等。
    /mnt如果妳想要暫時(shí)掛載某些額外的裝置,一般建議妳可以放置到這個(gè)目錄中。在古早時(shí)候,這個(gè)目錄的用途與/media相同啦!只是有了/media之后,這個(gè)目錄就用來暫時(shí)掛載用了。
    /opt這個(gè)是給第三方協(xié)力軟件放置的目錄。什么是第三方協(xié)力軟件啊?舉例來說,KDE這個(gè)桌面管理系統(tǒng)是一個(gè)獨(dú)立的計(jì)劃,不過他可以安裝到Linux系統(tǒng)中,因此KDE的軟件就建議放置到此目錄下了。另外,如果妳想要自行安裝額外的軟件(非原本的distribution提供的),那么也能夠?qū)⒛愕能浖惭b到這里來。不過,以前的Linux系統(tǒng)中,我們還是習(xí)慣放置在/usr/local目錄下呢!
    /root系統(tǒng)管理員(root)的家目錄。之所以放在這里,是因?yàn)槿绻M(jìn)入單人維護(hù)模式而僅掛載根目錄時(shí),該目錄就能夠擁有root的家目錄,所以我們會(huì)希望root的家目錄與根目錄放置在同一個(gè)分割槽中。
    /sbinLinux有非常多指令是用來設(shè)定系統(tǒng)環(huán)境的,這些指令只有root才能夠利用來『設(shè)定』系統(tǒng),其他用戶最多只能用來『查詢』而已。放在/sbin底下的為開機(jī)過程中所需要的,里面包括了開機(jī)、修復(fù)、還原系統(tǒng)所需要的指令。至于某些服務(wù)器軟件程序,一般則放置到/usr/sbin/當(dāng)中。至于本機(jī)自行安裝的軟件所產(chǎn)生的系統(tǒng)執(zhí)行文件(system binary),則放置到/usr/local/sbin/當(dāng)中了。常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。
    /srvsrv可以視為『service』的縮寫,是一些網(wǎng)絡(luò)服務(wù)啟動(dòng)之后,這些服務(wù)所需要取用的數(shù)據(jù)目錄。常見的服務(wù)例如WWW, FTP等等。舉例來說,WWW服務(wù)器需要的網(wǎng)頁數(shù)據(jù)就可以放置在/srv/www/里面。
    /tmp這是讓一般使用者或者是正在執(zhí)行的程序暫時(shí)放置文件的地方。這個(gè)目錄是任何人都能夠存取的,所以你需要定期的清理一下。當(dāng)然,重要數(shù)據(jù)不可放置在此目錄啊!因?yàn)镕HS甚至建議在開機(jī)時(shí),應(yīng)該要將/tmp下的數(shù)據(jù)都刪除唷!

    事實(shí)上FHS針對根目錄所定義的標(biāo)準(zhǔn)就僅有上面的咚咚,不過我們的Linux底下還有許多目錄你也需要了解一下的。底下是幾個(gè)在Linux當(dāng)中也是非常重要的目錄喔:

    目錄應(yīng)放置文件內(nèi)容
    /lost+found這個(gè)目錄是使用標(biāo)準(zhǔn)的ext2/ext3文件系統(tǒng)格式才會(huì)產(chǎn)生的一個(gè)目錄,目的在于當(dāng)文件系統(tǒng)發(fā)生錯(cuò)誤時(shí),將一些遺失的片段放置到這個(gè)目錄下。這個(gè)目錄通常會(huì)在分割槽的最頂層存在,例如你加裝一顆硬盤于/disk中,那在這個(gè)系統(tǒng)下就會(huì)自動(dòng)產(chǎn)生一個(gè)這樣的目錄『/disk/lost+found』
    /proc這個(gè)目錄本身是一個(gè)『虛擬文件系統(tǒng)(virtual filesystem)』喔!他放置的數(shù)據(jù)都是在內(nèi)存當(dāng)中,例如系統(tǒng)核心、行程信息(process)、周邊裝置的狀態(tài)及網(wǎng)絡(luò)狀態(tài)等等。因?yàn)檫@個(gè)目錄下的數(shù)據(jù)都是在內(nèi)存當(dāng)中,所以本身不占任何硬盤空間啊!比較重要的文件例如:/proc/cpuinfo,/proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。
    /sys這個(gè)目錄其實(shí)跟/proc非常類似,也是一個(gè)虛擬的文件系統(tǒng),主要也是記錄與核心相關(guān)的信息。包括目前已加載的核心模塊與核心偵測到的硬件裝置信息等等。這個(gè)目錄同樣不占硬盤容量喔!

    除了這些目錄的內(nèi)容之外,另外要注意的是,因?yàn)楦夸浥c開機(jī)有關(guān),開機(jī)過程中僅有根目錄會(huì)被掛載,其他分割槽則是在開機(jī)完成之后才會(huì)持續(xù)的進(jìn)行掛載的行為。就是因?yàn)槿绱?#xff0c;因此根目錄下與開機(jī)過程有關(guān)的目錄,就不能夠與根目錄放到不同的分割槽去!那哪些目錄不可與根目錄分開呢?有底下這些:

    • /etc:配置文件
    • /bin:重要執(zhí)行檔
    • /dev:所需要的裝置文件
    • /lib:執(zhí)行檔所需的函式庫與核心所需的模塊
    • /sbin:重要的系統(tǒng)執(zhí)行文件

    這五個(gè)目錄千萬不可與根目錄分開在不同的分割槽!請背下來啊!好了,談完了根目錄,接下來我們就來談?wù)?usr以及/var!先看/usr里面有些什么東西:


    • /usr 的意義與內(nèi)容:

    依據(jù)FHS的基本定義,/usr里面放置的數(shù)據(jù)屬于可分享的與不可變動(dòng)的(shareable, static),如果你知道如何透過網(wǎng)絡(luò)進(jìn)行分割槽的掛載(例如在服務(wù)器篇會(huì)談到的NFS服務(wù)器),那么/usr確實(shí)可以分享給局域網(wǎng)絡(luò)內(nèi)的其他主機(jī)來使用喔!

    很多讀者都會(huì)誤會(huì)/usr為user的縮寫,其實(shí)usr是Unix Software Resource的縮寫,也就是『Unix操作系統(tǒng)軟件資源』所放置的目錄,而不是用戶的數(shù)據(jù)啦!這點(diǎn)要注意。FHS建議所有軟件開發(fā)者,應(yīng)該將他們的數(shù)據(jù)合理的分別放置到這個(gè)目錄下的次目錄,而不要自行建立該軟件自己獨(dú)立的目錄。

    因?yàn)槭撬邢到y(tǒng)默認(rèn)的軟件(distribution發(fā)布者提供的軟件)都會(huì)放置到/usr底下,因此這個(gè)目錄有點(diǎn)類似Windows系統(tǒng)的『C:\Windows\ + C:\Program files\』這兩個(gè)目錄的綜合體,系統(tǒng)剛安裝完畢時(shí),這個(gè)目錄會(huì)占用最多的硬盤容量。一般來說,/usr的次目錄建議有底下這些:

    目錄應(yīng)放置文件內(nèi)容
    /usr/X11R6/為X Window System重要數(shù)據(jù)所放置的目錄,之所以取名為X11R6是因?yàn)樽詈蟮腦版本為第11版,且該版的第6次釋出之意。
    /usr/bin/絕大部分的用戶可使用指令都放在這里!請注意到他與/bin的不同之處。(是否與開機(jī)過程有關(guān))
    /usr/include/c/c++等程序語言的檔頭(header)與包含檔(include)放置處,當(dāng)我們以tarball方式 (*.tar.gz 的方式安裝軟件)安裝某些數(shù)據(jù)時(shí),會(huì)使用到里頭的許多包含檔喔!
    /usr/lib/包含各應(yīng)用軟件的函式庫、目標(biāo)文件(object file),以及不被一般使用者慣用的執(zhí)行檔或腳本(script)。某些軟件會(huì)提供一些特殊的指令來進(jìn)行服務(wù)器的設(shè)定,這些指令也不會(huì)經(jīng)常被系統(tǒng)管理員操作,那就會(huì)被擺放到這個(gè)目錄下啦。要注意的是,如果你使用的是X86_64的Linux系統(tǒng),那可能會(huì)有/usr/lib64/目錄產(chǎn)生喔!
    /usr/local/系統(tǒng)管理員在本機(jī)自行安裝自己下載的軟件(非distribution默認(rèn)提供者),建議安裝到此目錄,這樣會(huì)比較便于管理。舉例來說,你的distribution提供的軟件較舊,你想安裝較新的軟件但又不想移除舊版,此時(shí)你可以將新版軟件安裝于/usr/local/目錄下,可與原先的舊版軟件有分別啦!你可以自行到/usr/local去看看,該目錄下也是具有bin, etc, include, lib...的次目錄喔!
    /usr/sbin/非系統(tǒng)正常運(yùn)作所需要的系統(tǒng)指令。最常見的就是某些網(wǎng)絡(luò)服務(wù)器軟件的服務(wù)指令(daemon)啰!
    /usr/share/放置共享文件的地方,在這個(gè)目錄下放置的數(shù)據(jù)幾乎是不分硬件架構(gòu)均可讀取的數(shù)據(jù),因?yàn)閹缀醵际俏谋疚募?#xff01;在此目錄下常見的還有這些次目錄:
    • /usr/share/man:聯(lián)機(jī)幫助文件
    • /usr/share/doc:軟件雜項(xiàng)的文件說明
    • /usr/share/zoneinfo:與時(shí)區(qū)有關(guān)的時(shí)區(qū)文件
    /usr/src/一般原始碼建議放置到這里,src有source的意思。至于核心原始碼則建議放置到/usr/src/linux/目錄下。


    • /var 的意義與內(nèi)容:

    如果/usr是安裝時(shí)會(huì)占用較大硬盤容量的目錄,那么/var就是在系統(tǒng)運(yùn)作后才會(huì)漸漸占用硬盤容量的目錄。因?yàn)?var目錄主要針對常態(tài)性變動(dòng)的文件,包括緩存(cache)、登錄檔(log file)以及某些軟件運(yùn)作所產(chǎn)生的文件,包括程序文件(lock file, run file),或者例如MySQL數(shù)據(jù)庫的文件等等。常見的次目錄有:

    目錄應(yīng)放置文件內(nèi)容
    /var/cache/應(yīng)用程序本身運(yùn)作過程中會(huì)產(chǎn)生的一些暫存檔;
    /var/lib/程序本身執(zhí)行的過程中,需要使用到的數(shù)據(jù)文件放置的目錄。在此目錄下各自的軟件應(yīng)該要有各自的目錄。舉例來說,MySQL的數(shù)據(jù)庫放置到/var/lib/mysql/而rpm的數(shù)據(jù)庫則放到/var/lib/rpm去!
    /var/lock/某些裝置或者是文件資源一次只能被一個(gè)應(yīng)用程序所使用,如果同時(shí)有兩個(gè)程序使用該裝置時(shí),就可能產(chǎn)生一些錯(cuò)誤的狀況,因此就得要將該裝置上鎖(lock),以確保該裝置只會(huì)給單一軟件所使用。舉例來說,刻錄機(jī)正在刻錄一塊光盤,你想一下,會(huì)不會(huì)有兩個(gè)人同時(shí)在使用一個(gè)刻錄機(jī)燒片?如果兩個(gè)人同時(shí)刻錄,那片子寫入的是誰的數(shù)據(jù)?所以當(dāng)?shù)谝粋€(gè)人在刻錄時(shí)該刻錄機(jī)就會(huì)被上鎖,第二個(gè)人就得要該裝置被解除鎖定(就是前一個(gè)人用完了)才能夠繼續(xù)使用啰。
    /var/log/重要到不行!這是登錄文件放置的目錄!里面比較重要的文件如/var/log/messages, /var/log/wtmp(記錄登入者的信息)等。
    /var/mail/放置個(gè)人電子郵件信箱的目錄,不過這個(gè)目錄也被放置到/var/spool/mail/目錄中!通常這兩個(gè)目錄是互為鏈接文件啦!
    /var/run/某些程序或者是服務(wù)啟動(dòng)后,會(huì)將他們的PID放置在這個(gè)目錄下喔!至于PID的意義我們會(huì)在后續(xù)章節(jié)提到的。
    /var/spool/這個(gè)目錄通常放置一些隊(duì)列數(shù)據(jù),所謂的『隊(duì)列』就是排隊(duì)等待其他程序使用的數(shù)據(jù)啦!這些數(shù)據(jù)被使用后通常都會(huì)被刪除。舉例來說,系統(tǒng)收到新信會(huì)放置到/var/spool/mail/中,但使用者收下該信件后該封信原則上就會(huì)被刪除。信件如果暫時(shí)寄不出去會(huì)被放到/var/spool/mqueue/中,等到被送出后就被刪除。如果是工作排程數(shù)據(jù)(crontab),就會(huì)被放置到/var/spool/cron/目錄中!

    建議在你讀完整個(gè)基礎(chǔ)篇之后,可以挑戰(zhàn)FHS官方英文文件(參考本章參考資料),相信會(huì)讓你對于Linux操作系統(tǒng)的目錄有更深入的了解喔!


    • 針對FHS,各家distributions的異同

    由于FHS僅是定義出最上層(/)及次層(/usr, /var)的目錄內(nèi)容應(yīng)該要放置的文件或目錄數(shù)據(jù),因此,在其他次目錄層級內(nèi),就可以隨開發(fā)者自行來配置了。舉例來說,CentOS的網(wǎng)絡(luò)設(shè)定數(shù)據(jù)放在 /etc/sysconfig/network-scripts/ 目錄下,但是SuSE則是將網(wǎng)絡(luò)放置在/etc/sysconfig/network/ 目錄下,目錄名稱可是不同的呢!不過只要記住大致的FHS標(biāo)準(zhǔn),差異性其實(shí)有限啦!


    目錄樹(directory tree)

    另外,在Linux底下,所有的文件與目錄都是由根目錄開始的!那是所有目錄與文件的源頭~然后再一個(gè)一個(gè)的分支下來,有點(diǎn)像是樹枝狀啊~因此,我們也稱這種目錄配置方式為:『目錄樹(directory tree)』這個(gè)目錄樹有什么特性呢?他主要的特性有:

    • 目錄樹的啟始點(diǎn)為根目錄 (/, root);
    • 每一個(gè)目錄不止能使用本地端的 partition 的文件系統(tǒng),也可以使用網(wǎng)絡(luò)上的 filesystem 。舉例來說,可以利用 Network File System (NFS) 服務(wù)器掛載某特定目錄等。
    • 每一個(gè)文件在此目錄樹中的文件名(包含完整路徑)都是獨(dú)一無二的。

    好,談完了FHS的標(biāo)準(zhǔn)之后,實(shí)際來看看CentOS在根目錄底下會(huì)有什么樣子的數(shù)據(jù)吧!我們可以下達(dá)以下的指令來查詢:

    [root@www ~]# ls -l / drwxr-xr-x 2 root root 4096 Sep 5 12:34 bin drwxr-xr-x 4 root root 1024 Sep 4 18:06 boot drwxr-xr-x 12 root root 4320 Sep 22 12:10 dev drwxr-xr-x 105 root root 12288 Sep 22 12:10 etc drwxr-xr-x 4 root root 4096 Sep 5 14:08 home drwxr-xr-x 14 root root 4096 Sep 5 12:12 lib drwx------ 2 root root 16384 Sep 5 01:49 lost+found drwxr-xr-x 2 root root 4096 Mar 30 2007 media drwxr-xr-x 2 root root 0 Sep 22 12:09 misc drwxr-xr-x 2 root root 4096 Mar 30 2007 mnt drwxr-xr-x 2 root root 0 Sep 22 12:09 net drwxr-xr-x 2 root root 4096 Mar 30 2007 opt dr-xr-xr-x 95 root root 0 Sep 22 2008 proc drwxr-x--- 4 root root 4096 Sep 8 14:06 root drwxr-xr-x 2 root root 12288 Sep 5 12:33 sbin drwxr-xr-x 4 root root 0 Sep 22 2008 selinux drwxr-xr-x 2 root root 4096 Mar 30 2007 srv drwxr-xr-x 11 root root 0 Sep 22 2008 sys drwxrwxrwt 6 root root 4096 Sep 22 12:10 tmp drwxr-xr-x 14 root root 4096 Sep 4 18:00 usr drwxr-xr-x 26 root root 4096 Sep 4 18:19 var

    上面表格中比較特殊的應(yīng)該是/selinux這個(gè)目錄了,這個(gè)目錄的內(nèi)容數(shù)據(jù)也是在內(nèi)存中的信息,同樣的不會(huì)占用任何的硬盤容量。這個(gè)/selinux是Secure Enhance Linux(SELinux)的執(zhí)行目錄,而SELinux是Linux核心的重要外掛功能之一,他可以用來作為細(xì)部權(quán)限的控管,主要針對程序(尤其是網(wǎng)絡(luò)程序)的訪問權(quán)限來限制。關(guān)于SELinux我們會(huì)在后續(xù)的章節(jié)繼續(xù)做介紹的喔!

    如果我們將整個(gè)目錄樹以圖標(biāo)的方法來顯示,并且將較為重要的文件數(shù)據(jù)列出來的話,那么目錄樹架構(gòu)有點(diǎn)像這樣:


    圖3.2.1、目錄樹架構(gòu)示意圖

    鳥哥只有就各目錄進(jìn)行簡單的解釋,看看就好,詳細(xì)的解釋請回到剛剛說明的表格中去查閱喔!看完了FHS標(biāo)準(zhǔn)之后,現(xiàn)在回到第三章里面去看看安裝前Linux規(guī)劃的分割情況,對于當(dāng)初為何需要分割為這樣的情況,有點(diǎn)想法了嗎?^_^。根據(jù)FHS的定義,妳最好能夠?qū)?var獨(dú)立出來,這樣對于系統(tǒng)的數(shù)據(jù)還有一些安全性的保護(hù)呢!因?yàn)橹辽?var死掉時(shí),你的根目錄還會(huì)活著嘛!還能夠進(jìn)入救援模式啊!


    絕對路徑與相對路徑

    除了需要特別注意的FHS目錄配置外,在文件名部分我們也要特別注意喔!因?yàn)?span id="ozvdkddzhkzd" class="text_import2">根據(jù)檔名寫法的不同,也可將所謂的路徑(path)定義為絕對路徑(absolute)與相對路徑(relative)。這兩種文件名/路徑的寫法依據(jù)是這樣的:

    • 絕對路徑:由根目錄(/)開始寫起的文件名或目錄名稱,例如 /home/dmtsai/.bashrc;
    • 相對路徑:相對于目前路徑的文件名寫法。例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正開頭不是 / 就屬于相對路徑的寫法

    而你必須要了解,相對路徑是以『你當(dāng)前所在路徑的相對位置』來表示的。舉例來說,你目前在 /home 這個(gè)目錄下,如果想要進(jìn)入 /var/log 這個(gè)目錄時(shí),可以怎么寫呢?

  • cd /var/log ? (absolute)
  • cd ../var/log (relative)
  • 因?yàn)槟阍?/home 底下,所以要回到上一層 (../) 之后,才能繼續(xù)往 /var 來移動(dòng)的!特別注意這兩個(gè)特殊的目錄:

    • . ?:代表當(dāng)前的目錄,也可以使用 ./ 來表示;
    • .. :代表上一層目錄,也可以 ../ 來代表。

    這個(gè) . 與 .. 目錄概念是很重要的,你常常會(huì)看到 cd .. 或 ./command 之類的指令下達(dá)方式,就是代表上一層與目前所在目錄的工作狀態(tài)喔!很重要的吶!

    例題: 如何先進(jìn)入/var/spool/mail/目錄,再進(jìn)入到/var/spool/cron/目錄內(nèi)? 答: 由于/var/spool/mail與/var/spool/cron是同樣在/var/spool/目錄中,因此最簡單的指令下達(dá)方法為:
  • cd /var/spool/mail
  • cd ../cron
  • 如此就不需要在由根目錄開始寫起了。這個(gè)相對路徑是非常有幫助的!尤其對于某些軟件開發(fā)商來說。一般來說,軟件開發(fā)商會(huì)將數(shù)據(jù)放置到/usr/local/里面的各相對目錄,妳可以參考圖3.2.1的相對位置。但如果用戶想要安裝到不同目錄呢?就得要使用相對路徑啰!^_^

    例題: 網(wǎng)絡(luò)文件常常提到類似『./run.sh』之類的數(shù)據(jù),這個(gè)指令的意義為何? 答: 由于指令的執(zhí)行需要變量(bash章節(jié)才會(huì)提到)的支持,若你的執(zhí)行文件放置在本目錄,并且本目錄并非正規(guī)的執(zhí)行文件目錄(/bin, /usr/bin等為正規(guī)),此時(shí)要執(zhí)行指令就得要嚴(yán)格指定該執(zhí)行檔。『./』代表『本目錄』的意思,所以『./run.sh』代表『執(zhí)行本目錄下,名為run.sh的文件』啰!

    CentOS 的觀察

    某些時(shí)刻你可能想要知道你的 distribution 使用的是那個(gè) Linux 標(biāo)準(zhǔn) (Linux Standard Base),而且我們也知道 distribution 使用的都是 Linux 的核心!那你如何觀察這些基本的信息呢?可以使用如下的指令來觀察看看啦:

    [root@www ~]# uname -r 2.6.18-128.el5 <==可以察看實(shí)際的核心版本 [root@www ~]# lsb_release -a LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64: graphics-3.1-ia32:graphics-3.1-noarch <==LSB 的版本 Distributor ID: CentOS Description: CentOS release 5.3 (Final) <==distribution 的版本 Release: 5.3 Codename: Final

    重點(diǎn)回顧
    • Linux的每個(gè)文件中,依據(jù)權(quán)限分為使用者、群組與其他人三種身份;
    • 群組最有用的功能之一,就是當(dāng)你在團(tuán)隊(duì)開發(fā)資源的時(shí)候,且每個(gè)賬號都可以有多個(gè)群組的支持;
    • 利用ls -l顯示的文件屬性中,第一個(gè)字段是文件的權(quán)限,共有十個(gè)位,第一個(gè)位是文件類型,接下來三個(gè)為一組共三組,為使用者、群組、其他人的權(quán)限,權(quán)限有r,w,x三種;
    • 如果檔名之前多一個(gè)『 . 』,則代表這個(gè)文件為『隱藏檔』;
    • 更改文件的群組支持可用chgrp,修改文件的擁有者可用chown,修改文件的權(quán)限可用chmod
    • chmod修改權(quán)限的方法有兩種,分別是符號法與數(shù)字法,數(shù)字法中r,w,x分?jǐn)?shù)為4,2,1;
    • 對文件來講,權(quán)限的效能為:
      • r:可讀取此一文件的實(shí)際內(nèi)容,如讀取文本文件的文字內(nèi)容等;
      • w:可以編輯、新增或者是修改該文件的內(nèi)容(但不含刪除該文件);
      • x:該文件具有可以被系統(tǒng)執(zhí)行的權(quán)限。
    • 對目錄來說,權(quán)限的效能為:
      • r (read contents in directory)
      • w (modify contents of directory)
      • x (access directory)
    • 要開放目錄給任何人瀏覽時(shí),應(yīng)該至少也要給予r及x的權(quán)限,但w權(quán)限不可隨便給;
    • Linux檔名的限制為:單一文件或目錄的最大容許文件名為 255 個(gè)字符;包含完整路徑名稱及目錄 (/) 之完整檔名為 4096 個(gè)字符
    • 根據(jù)FHS的官方文件指出, 他們的主要目的是希望讓使用者可以了解到已安裝軟件通常放置于那個(gè)目錄下
    • FHS訂定出來的四種目錄特色為:shareable, unshareable, static, variable等四類;
    • FHS所定義的三層主目錄為:/, /var, /usr三層而已;
    • 有五個(gè)目錄不可與根目錄放在不同的partition,分別為/etc, /bin, /lib, /dev, /sbin五個(gè)。

    本章練習(xí)
    ( 要看答案請將鼠標(biāo)移動(dòng)到『答:』底下的空白處,按下左鍵圈選空白處即可察看 )
    • 請說明/bin與/usr/bin目錄所放置的執(zhí)行文件有何不同之處? /bin主要放置在開機(jī)時(shí),以及進(jìn)入單人維護(hù)模式后還能夠被使用的指令,至于/usr/bin則是大部分軟件提供的指令放置處。
    • 請說明/bin與/sbin目錄所放置的執(zhí)行文件有何不同之處? /bin放置的是一般用戶慣用的指令,至于/sbin則是系統(tǒng)管理員才會(huì)使用到的指令。不過/bin與/sbin都與開機(jī)、單人維護(hù)模式有關(guān)。更多的執(zhí)行檔會(huì)被放置到/usr/bin及/usr/sbin底下。
    • 哪幾個(gè)目錄不能夠與根目錄(/)放置到不同的partition中?并請說明該目錄所放置的數(shù)據(jù)為何? /etc(配置文件), /bin(一般身份可用執(zhí)行文件), /dev(裝置文件), /lib(執(zhí)行檔的函式庫或核心模塊等), /sbin(系統(tǒng)管理員可用指令)
    • 試說明為何根目錄要小一點(diǎn)比較好?另外在分割時(shí),為什么/home, /usr, /var, /tmp最好與根目錄放到不同的分割槽?試說明可能的原因?yàn)楹?由目錄放置數(shù)據(jù)的內(nèi)容談起)? 根據(jù)FHS的說明,越小的/可以放置的較為集中且讀取頻率較不頻繁,可避免較多的錯(cuò)誤。至于/home(用戶家目錄), /usr(軟件資源), /var(變動(dòng)幅度較大的數(shù)據(jù)), /tmp(系統(tǒng)暫存,數(shù)據(jù)莫名)中,因?yàn)閿?shù)據(jù)量較大或者是讀取頻率較高,或者是不明的使用情況較多,因此建議不要與根目錄放在一起,也會(huì)有助于系統(tǒng)安全。
    • 早期的 Unix 系統(tǒng)文件名最多允許 14 個(gè)字符,而新的 Unix 與 Linux 系統(tǒng)中,文件名最多可以容許幾個(gè)字符? 由于使用Ext2/Ext3文件系統(tǒng),單一檔名可達(dá) 255 字符,完整文件名 (包含路徑) 可達(dá) 4096 個(gè)字符
    • 當(dāng)一個(gè)一般文件權(quán)限為 -rwxrwxrwx 則表示這個(gè)文件的意義為? 任何人皆可讀取、修改或編輯、可以執(zhí)行,但不一定能刪除。
    • 我需要將一個(gè)文件的權(quán)限改為 -rwxr-xr-- 請問該如何下達(dá)指令? chmod 754 filename 或 chmod u=rwx,g=rx,o=r filename
    • 若我需要更改一個(gè)文件的擁有者與群組,該用什么指令? chown, chgrp
    • Linux 傳統(tǒng)的文件系統(tǒng)為何?此外,常用的 Journaling 文件格式有哪些? 傳統(tǒng)文件格式為:ext2,
      Journaling 有 ext3 及 Reiserfs 等
    • 請問底下的目錄與主要放置什么數(shù)據(jù):
      /etc/, /etc/init.d, /boot, /usr/bin, /bin, /usr/sbin, /sbin, /dev, /var/log
      • /etc/:幾乎系統(tǒng)的所有配置文件案均在此,尤其 passwd,shadow
      • /etc/init.d:系統(tǒng)開機(jī)的時(shí)候加載服務(wù)的 scripts 的擺放地點(diǎn)
      • /boot:開機(jī)配置文件,也是預(yù)設(shè)擺放核心 vmlinuz 的地方
      • /usr/bin, /bin:一般執(zhí)行檔擺放的地方
      • /usr/sbin, /sbin:系統(tǒng)管理員常用指令集
      • /dev:擺放所有系統(tǒng)裝置文件的目錄
      • /var/log:擺放系統(tǒng)注冊表文件的地方
    • 若一個(gè)文件的檔名開頭為『 . 』,例如 .bashrc 這個(gè)文件,代表什么?另外,如何顯示出這個(gè)文件名與他的相關(guān)屬性? 有『 . 』為開頭的為隱藏檔,需要使用 ls -a 這個(gè)-a 的選項(xiàng)才能顯示出隱藏文件的內(nèi)容,而使用 ls -al 才能顯示出屬性。

    參考資料與延伸閱讀
    • FHS的標(biāo)準(zhǔn)官方文件:http://proton.pathname.com/fhs/,非常值得參考的文獻(xiàn)!
    • 關(guān)于 Journaling 日志式文章的相關(guān)說明 http://www.linuxplanet.com/linuxplanet/reports/3726/1/

    2002/07/18:第一次完成
    2003/02/06:重新編排與加入FAQ
    2005/06/28:將舊的數(shù)據(jù)移動(dòng)到 這里
    2005/07/15:呼呼~終于改完成了~這次的修訂當(dāng)中,加入了 FHS 的說明,希望大家能夠比較清楚 Linux 的目錄配置!
    2005/08/05:修訂了最大檔名字元,應(yīng)該是 255 才對!另外,加入了『檔名限制』的部分!
    2005/09/03:修訂了目錄權(quán)限相關(guān)的說明,將原本僅具有 r 卻寫成無法使用 ls 瀏覽的說明數(shù)據(jù)移除!
    2008/09/08:舊的針對FC4所寫的文章移動(dòng)到此處
    2008/09/20:針對FHS加強(qiáng)說明了一下,分為/, /usr, /var三層來個(gè)別說明!并非抄襲官網(wǎng)的數(shù)據(jù)而已喔!
    2008/09/23:經(jīng)過一場大感冒,停工了四、五天,終于還是給他完工了!^_^
    2008/10/21:原本的第四小節(jié) Linux 的文件系統(tǒng),因?yàn)榕c第八章重復(fù)性太高,將他移除了!
    2009/08/01:加入了 lsb_release 的相關(guān)說明!

    2009/08/18:調(diào)整一下顯示的情況,使得更易讀~

    出處:http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission.php

    總結(jié)

    以上是生活随笔為你收集整理的鸟哥的Linux私房菜(基础篇)- 第六章、Linux 的文件权限与目录配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。