1.文件擁有者
初次接觸Linux的朋友大概會覺得很怪異,怎么“Linux有這么多用戶,還分什么用戶組,有什用呢?”,這個“用戶與用戶組”的功能可是相當健全而且好用的一個安全防護措施。
????????怎么說呢?由于Linux是個多人多任務的系統,因此可能常常會有多人同時使用這臺主機來進行工作的情況發生,為了考慮每個人的隱私權以及每個人喜好的工作環境,因此,這個文件擁有者的角色就顯得相當重要,
????????例如當你將你的email情書轉存成文件之后,放在你自己的家目錄,你總不希望被其他人看見的己的情書吧?這個時候,你就把該文件設置成“只有文件擁有者,就是我,才能看與修改這個文件的內容”,那么即使其他人知道你有這個相當有趣的文件,不過由于你有設置適當的權限,所以其他人自然也就無法知道該文件的內容。
2.用戶組概念
????????那么用戶組呢?為何要配置文件還有所屬的用戶組?其實,用戶組最有用的功能之一,就是當你在團隊進行協同工作的時候。
????????舉例來說,假設有兩組實習生在我的主機里面,
- 第一個實習組別為projecta里面的成員有class1、class2、class3三個;
- 第二個實習組別為projectb,里面的成員有class4、class5, class6。
????????這兩個實習組之間具有競爭性質,但卻要提交同一份報告。每組的組員之間必須要能夠互相修改對方的數據,但是其他組的組員則不能看到本組自己的文件內容,此時該如何是好?
????????在Linux下面這樣的限制很簡單。我可以經由簡易的文件權限設置,就能限制非自己團隊(亦即是用戶組)的其他人不能夠閱覽內容,而且亦可讓自己的團隊成員可以修改我所建立的文件。同時,如果我自己還有私人隱密的文件,仍然可設置成讓自己的團隊成員也看不到我的文件,很方便吧!
????????另外,如果teacher 這個賬號是projecta與projectb是負責這兩個實習組的老師,它想要同時觀察兩者的進度,因此需要能夠進入這兩個用戶組的權限時,你可以設置teacher這個賬號,同時支持projecta與projectb 這兩個用戶組,也就是說:每個賬號都可以有多個用戶組的支持。
????????這樣說或許你還不容易理解這個用戶與用戶組的關系吧?沒關系,我們可以使用目前“家庭”的概念來進行說明。
????????假設有一家人,家里只有三兄弟,分別是王大毛、王二毛與王三毛三個人,而這個家庭是登記在王大毛的名下。所以,“王大毛家有三個人,分別是王大毛、王二毛與王三毛”,而且這三個人都有自己的房間,并且共同擁有一個客廳。
????????用戶的意義:由于王家三人各自擁有自己的房間,所以,王二毛雖然可以進入王三毛的房間,但是二毛不能翻三毛的抽屜,那樣會被三毛打的。因為抽屜里面可能有三毛自己私人的東西,例如情書,日記等,這是私人的空間,所以當然不能讓二毛拿。
????????用戶組的概念:由于共同擁有客廳,所以王家三兄弟可以在客廳打開電視機、看報紙、坐在沙發上面發呆等。反正,只要是在客廳的玩意兒,三兄弟都可以使用,因為大家都是一家人嘛。
享,則可讓大家共同分享。
????????這樣說來應該有點了解了吧!那個“王大毛家”就是所謂的用戶組,至于三兄弟就是分別為三個用戶,而這三個用戶是在同一個用戶組里面的。而三個用戶雖然在同一用戶組內,但是我們可以設置權限,好讓某些用戶個人的信息不被用戶組的擁有者查詢,以保有個人私人的空間,而設置用戶組共享,則可讓大家共享
3.其他人的概念
????????好了,那么今天又有個人,名叫做張小豬,它是張小豬家的人,與王家沒有關系。這個時候,除非王家認識張小豬,然后開門讓張小豬進來王家,否則張小豬永遠沒有辦法進入王家,更不要說進到王三毛的房間。
????????不過,如果張小豬通過關系認識了三毛,并且跟王三毛成為好朋友,那么張小豬就可以通過三毛進入王家。呵呵,沒錯,那個張小豬就是所謂的“其他人(Others)'。
????????因此,我們就可以知道,在Linux里面,任何一個文件都具有用戶(User)、所屬群組(Group)及其他人(Others)三種身份的個別權限,我們可以將上面的說明以下面的圖來解釋:
我們以王三毛為例,王三毛這個“文件”的擁有者為王三毛,它屬于王大毛這個用戶組,而張小豬相對于王三毛,則只是一個其他人(Others)而已。
????????不過,這里有個特殊的人物要來介紹,那就是“萬能的天神”。這個天神具有無限的神力,所以它可以到達任何它想要去的地方,呵呵,那個人在Linux系統中的身份代號是root。所以要小心,這個root可是“萬能的天神”。
????????無論如何,用戶身份與該用戶所支持的用戶組概念,在Linux的世界里面是相當得重要,它可以幫助你讓你的多任務Linux環境變得更容易管理。更詳細的身份與用戶組設置,我們將在第13章賬號管理再進行說明,下面我們將針對文件系統與文件權限來進行說明。
我們再舉一個例子
- (1)你在Facebook注冊一個賬號,這個賬號可以類比為Linux的賬號;
- (2)你可以新增一個社團,這個社團的隱私權是可以由您自己指定的,看是要公開還是要隱藏,這就可以類比為Linux的用戶組概念,這個用戶組的權限可以自己設置;
- (3)那么其他在Facebook注冊的人,沒有加入你的社團,它就是Linux上所謂的“其他人”。最后,在Facebook上面的每一條留言,就可以想成Linux下面的“文件”。
那么上面談到的用戶組有啥幫助呢?
????????想想看,你在Facebook上面,你的StudyArea社團是隱藏的,你想讓dmtsai可以進來查看每一個留言(想成是文件),最簡單的做法是什么?對,讓dmstai加入這個社團即可,沒錯,只要讓Linux某個賬號加入某個用戶組,該賬號就可以使用該用戶組能夠讀寫的資源。每個賬號可以加入的用戶組個數基本上是沒有限制的。
4.Linux用戶身份與用戶組記錄的文件
在我們Linux系統當中,默認的情況下,所有的系統上的賬號與一般身份用戶,還有那個root的相關信息,都記錄在/etc/passwd這個文件內,至于個人的密碼則是記錄在/etc/shadow這個文件內,此外,Linux所有的組名都記錄在/etc/group中。這三個文件可以說Linux系統里面賬號,密碼,用戶組信息的集中地,不要隨便刪除這三個文件