第八節 Linux 文件的屬性(下半部分) 標簽(空格分隔): Linux教學筆記 [更多相關資料請點我查看][1] 第1章 鏈接的概念 在linux系統中,鏈接可分為兩種:一種為硬鏈接(Hard Link),另一種為軟連接或符號鏈接(Symbolic Link or Soft link)。我們在前 ...
第八節 Linux 文件的屬性(下半部分)
標簽(空格分隔): Linux教學筆記
---更多相關資料請點我查看
第1章 鏈接的概念
在linux系統中,鏈接可分為兩種:一種為硬鏈接(Hard Link),另一種為軟連接或符號鏈接(Symbolic Link or Soft link)。我們在前面講解過ln這個命令就是創建鏈接文件的,在預設不帶參數的情況下,執行ln命令創建的鏈接是硬鏈接。
第2章 硬鏈接
- 硬鏈接是指通過索引節點(Inode)來進行連接。在Linux(ext2,ext3,ext4)文件系統中,保存在磁碟分區中的文件不管是什麼類型都會給它分配一個編號,這個編號被稱為索引節點編號(Index Inode)簡稱Inode,即在系統中文件的編號。
- 在Linux文件系統中,多個文件名指向同一個索引節點(inode號相同)是正常且允許的。這種情況的文件就稱為硬鏈接。
- 提示:硬鏈接文件就相當於文件的另外一個入口。硬鏈接的作用之一是允許一個文件擁有多個有效路徑名(多個入口),這樣用戶就可以建立硬鏈接到重要的文件,以防止“誤刪除”源數據(很多硬體存儲,如netapp存儲中的快照功能就應用了這個原理,增加一個快照就多了一個硬鏈接)。為什麼一個文件建立了硬鏈接就會防止數據誤刪呢?
- 因為文件系統(ext2)的原理是,只要文件的索引節點(Inode Index)還有一個以上的硬鏈接。只刪除其中一個硬鏈接(即僅僅刪除了該文件的鏈接指向)並不影響索引節點本身和其他的鏈接(即數據文件實體並未被刪除),只有當文件的最後一個鏈接被刪除後,此時如果有新數據要存儲到硬碟上時或者系統通過類似fsck做磁碟檢查的時候。被刪除文件的數據塊及目錄的鏈接才會被釋放,空間被新數據占用並覆蓋。此時,數據就再也無法找回了。
- 也就是說,在linux系統中,刪除靜態文件(沒有進程調用)(目錄也是文件)的條件是與之相關的所有硬鏈接文件均被刪除(暫時這樣理解即可,後文會講和進程的占用也有關)
- 下麵給出一個文件多個鏈接的形象圖幫助大家理解:
- 硬鏈接示意圖:如果使用ln -s 創建鏈接則為軟鏈接,前面文件類型為1(字母L)的是軟鏈接。
硬鏈接:ln 源文件 目標文件
軟鏈接:ln -s 源文件 目標文件(目標文件不能事先存在
硬鏈接的創建
直接執行命令“ln 源文件 硬鏈接文件”,即可完成創建硬鏈接。
2.1 硬鏈接知識小結
1,如何創建及含義:
- 通過執行命令“ln 源文件 硬鏈接文件”,即可完成創建硬鏈接。
- 具有相同inode節點號的多個文件是互為硬鏈接文件。
2,硬鏈接與刪除
- 刪除硬鏈接文件或者刪除源文件任意之一,文件實體(block 數據 文件內容)並未被刪除。
- 只有刪除了源文件及所有對應的硬鏈接文件,文件實體(block 數據 文件內容)才會被刪除
- 當所有的硬鏈接文件及源文件被刪除後,再存放新的數據會占用這個文件的空間,或者磁碟fsck檢查的時候,刪除的數據也會被系統回收(養成刪除及多套環境測試的好習慣)
3,硬鏈接文件就是文件的另一個入口(相當於超市的前門,後門一樣)。
4,可以通過給文件設置硬鏈接文件,來防止重要文件被誤刪。
5,硬鏈接文件是普通文件,因此可以用rm命令刪除
6,文件徹底刪除:
對於靜態文件(沒有進程正在調用的文件)來講,當對應硬鏈接數為0(i_link),文件就被刪除。 i_link的查看方法(ls -lhi結果的第三列就是)
7,查看文件的硬鏈接數ls -lhi/stat,i_link的查看方法(ls -lhi結果的第三列就是)
2.2 軟連接
- 軟連接(Soft Link)也稱為符號鏈接(Symbolic Link)。linux里的軟鏈接文件就類似於Windows系統中的快捷方式。linux里的軟鏈接文件實際上是一個特殊的文件,文件類型是l。軟鏈接文件實際上可以理解為一個文本文件,這個文件中包含有軟鏈接指向另一個源文件的位置信息內容,因此,通過訪問這個“快捷方式”就可以迅速定位到軟鏈接所指向的源文件實體。
- 下麵給出一個軟連接文件的形象圖幫助大家理解:
查看軟鏈接的value:
[root@chensiqi1 ~]# ll annn
lrwxrwxrwx. 1 root root 15 12月 30 07:48 annn -> anaconda-ks.cfg
[root@chensiqi1 ~]#
軟鏈接的創建
- 執行命令“ln -s 源文件 軟鏈接文件”,即可完成創建軟鏈接。
- 誤區:創建軟鏈接的源文件是需要存在的,要創建的軟鏈接文件是不能存在的,是要用ln命令創建的
2.3 企業面試題
在配置apache時,執行了./configure --prefix=/application/apache2.2.17來編譯apache,在make install 完成後,希望用戶的訪問路徑更簡單,需要給/application/apache2.2.17目錄做一個軟鏈接/application/apache,使得內部開發或管理人員通過/application/apache就可以訪問到apache的安裝目錄/application/apache2.2.17下的內容,請你給出實現的命令。(提示:apache為一個httpd web服務)
思路:
軟體的安裝位置
/application/apache2.2.17
給開發人員使用的位置
/application/apache2.2.17
升級軟體,新的軟體的安裝位置
/application/apache2.4.17
思考:如何給別人使用的始終是一個路徑,即使更新了軟體
所以,我們要做軟鏈接,這樣不論軟體如何更新,通過修改軟鏈接的指向就可以,然後軟鏈接的路徑始終不變。
1,創建軟鏈接
2,軟體更新了,重新創建軟鏈接
3,如圖軟鏈接的地址始終不變,不會影響開發人員的使用,這就是實際工作中軟鏈接的意義
軟鏈接知識小結
1,軟鏈接類似windows的快捷方式(可以通過readlink查看指向)
2,軟鏈接類似一個文本文件,裡面存放的是源文件的路徑(ls -l),指向源文件實體。
3,刪除源文件,軟鏈接文件依然存在,但是無法訪問指向的源文件路徑內容。
4,失效的時候一般是白字紅底閃爍提示。
5,執行命令“ln -s 源文件 軟鏈接文件”,即可完成創建軟鏈接(目標不能存在)
6,軟鏈接和源文件是不同類型的文件,也是不同的文件。inode號也不相同
7,軟鏈接文件的文件類型為“1(字母1)”,可以用rm命令刪除
2.4 示例演示
2.4.1 文件軟硬鏈接示例
目錄的軟鏈接在實際生產場景中經常用到,硬鏈接用的不多。
思考:下圖為何不能創建硬鏈接
分析:
- 硬鏈接的本質其實就是有多個入口,都可以看到目標文件的內容。這些入口就是門,也就是硬鏈接。
- 硬鏈接其實也就相當於做備份--超市A ---超市A.bak
- 軟鏈接就相當於windows的快捷方式,這就如同超市並沒有多開新的門,仍舊用的舊門,只不過告訴你通過多條路都可以來到這個門而已。
- 因此,對linux來說,硬鏈接需要系統將目標文件做備份,刪除其中的任何一個,文件內容都不會消失,只不過是刪除了其中的一份備份而已;而軟鏈接並沒有做備份,他只是多增加了一條來到門前的通路而已。
- 故,假如linux允許給目錄做硬鏈接的話,他就同時需要給目錄下的所有文件在做一個硬鏈接,這樣會導致系統不斷的進行遍歷,拖慢系統的運行速度。
測試
通過軟硬鏈接都能看到目標內容,因此,對其中的一個的內容做出改變,所有都改變。
當刪除源文件後,硬鏈接的文件不受影響,但是軟鏈接文件失效
測試結論:
- 軟鏈接和硬鏈接都指向相同的文件內容,因此其中一個的文件內容發生改變,所有的鏈接文件內容都發生改變
- 當源文件chensiqi被刪除,軟鏈接受到影響,進入失效狀態,因為軟鏈接是通過源文件作為入口才能看到文件內容的,入口沒了,軟鏈接自然失效。
- 而源文件被刪除,硬鏈接不受影響,是因為,硬鏈接單獨開闢了一個能夠看到文件內容的入口,源文件的入口沒了,不影響硬鏈接的入口的正常使用。
2.6 鏈接總結
2.6.1 軟硬鏈接小結
通過測試,我們可以得到以下幾個結論:
1,刪除軟鏈接,對源文件和硬鏈接文件無影響
2,刪除硬鏈接,對源文件和軟鏈接無影響
3,刪除源文件,對硬鏈接無影響,但是軟鏈接失效
4,同時刪除源文件和硬鏈接,整個文件就會真正的被刪除
5,源文件和硬鏈接文件具有相同的索引節點號,可以認為是同一個文件或一個文件的多個入口。
6,源文件和軟鏈接文件索引節點號不同,是不同的文件,軟鏈接相當於源文件的快捷方式,含有源文件的位置指向。
2.6.2 有關目錄鏈接小結
1,對於目錄,不可以創建硬鏈接,但可以創建軟鏈接
2,對於目錄的軟鏈接是生產場景運維中常用的技巧
3,目錄的硬鏈接不能跨越文件系統(從硬鏈接原理可以理解)
4,每個目錄下麵都有一個硬鏈接“.”號,和對應上級目錄的硬鏈接“..”
5,再父目錄里創建一個子目錄,父目錄的鏈接數增加1(每個子目錄里都有..來指向父目錄)
但是在父目錄立創建文件,父目錄的鏈接數不會增加。
2.6.3 企業面試題
描述linux下軟鏈接和硬鏈接的區別
解答:
1,預設不帶參數情況下,ln命令創建的是硬鏈接,帶-s參數的ln命令創建的事軟鏈接
2,硬鏈接文件與源文件的inode節點號相同,而軟鏈接文件的inode節點號與源文件不同。
3,ln命令不能對目錄創建硬鏈接,但可以創建軟鏈接,對目錄的軟鏈接會經常被用到。
4,刪除軟鏈接文件,對源文件及硬鏈接文件無任何影響
5,刪除文件的硬鏈接文件,對源文件及軟鏈接文件無任何影響
6,刪除鏈接文件的源文件,對硬鏈接文件無影響,會導致其軟鏈接失效
7,同時刪除源文件及硬鏈接文件,整個文件才會被真正的刪除
8,軟鏈接可以跨文件系統,硬鏈接不可以跨文件系統
2.6.4 鏈接知識擴展
李小龍說過一句話,他不怕一千個動作只練一遍的人,而怕一個動作練一千遍的人
簡單的事情重覆做就是高手,不斷重覆下去就是專家
綜上:請千萬記得,正在使用當中的文件,即便你刪除了i_nlink(硬鏈接數),文件實際上也並沒有被刪除,因為,文件還正在處於讀寫狀態。只有i_count的數也為零時,文件才會被徹底刪除。
再生產環境中,有時會遇到apache等類似服務,磁碟滿了的情況,會要求你去刪掉些日誌,如果此時你去刪除了,你會發現磁碟空間占用沒有改變,還是滿的,而且查詢不到。這是因為,後臺進程仍舊在占用著被刪掉了的日誌文件,因此linux並沒有將內容刪除(block),你的刪除只是清除了inode和文件名而已。解決這個問題就需要重新啟動apache
較好的處理方案,清空日誌而不刪除日誌>/app/logs/access_log
第3章 文件的許可權
3.1 文件許可權概述
- Linux中每個文件或目錄都有一組共9個基礎許可權位,每三位字元被分為一組,他們分別是屬主許可權位(占三個字元),用戶組許可權位(占三個字元),其他用戶許可權位(占三個字元)。比如rwxr-xr-x,在linux中正是這9個許可權位來控制文件屬主,用戶組以及其他用戶許可權。
3.2 許可權位說明
- Linux文件或目錄的許可權位是由9個許可權位來控制,每三位為一組:
- 文件的所有者許可權:Owner的讀寫執行
- 文件所有者屬於的組的許可權:Group用戶組的讀寫執行
- 其他人Other其他用戶的讀寫執行
- r(read)可讀許可權,對應數字4
- w(write)可寫許可權,對應數字2
- x(Execute)可執行許可權,對應數字1
- 沒有任何許可權,對應數字0
3.3 linux多用戶多任務介紹
Linux/Unix是一個多用戶,多任務的操作系統;在講Linux賬號及賬號組管理之前,我們先簡單瞭解下多用戶,多任務操作系統的基本概念。
- 鑒於大家對windows比較熟悉了,因此我們先以windows系統為例闡述。當我們以管理員賬號administrator用戶登錄windows系統後,我可能需要編輯word文檔內容,但在編輯文件的過程中,又可能會同時打開音樂播放器聽音樂;同時還可能會打開MSN/QQ。其中編輯word文檔,開播放器,MSN/QQ,這些操作每種都是一項任務。因此,在以上過程中,我們同時執行了幾個任務。一個用戶如administrator用戶,為了完成工作和相關任務,同時執行了幾個服務或進程;那麼,Linux也是這樣的一個操作系統,當你登陸後,你也可以同時開啟很多的服務任務和進程,而各自服務都會跑的很好卻對其他任務沒有任何影響,這種一個用戶登陸系統執行多個服務任務和進程的情況,就稱為單用戶多任務。
- 有時可能是很多用戶同時用同一個系統,如老男孩所在公司幾十個運維人員,每台機器都可以被若幹個運維人員登陸部署或解決相關故障問題,但並不是所有的運維人員都要做同一件事,所以這就有多用戶,多任務的情況。
- 舉個例子,比如etiantian.org伺服器,上面有系統管理員root用戶,apache用戶,常規普通用戶等。在同一時刻,可能有的人正在上傳軟體包部署apache服務;有的查看伺服器日誌,有的人正在登陸編寫shell程式;不同的維護人員對系統的維護或查看,用的可以是不同的普通賬戶或超級賬戶root;不同用戶所具有的許可權也不同,不同的任務工作由不同的維護人員來完成,也可以說是不同的用戶。
- 值得註意的是:多用戶,多任務並不是大家同時擠到一起在一臺機器的鍵盤和顯示器前來操作機器,多用戶可能是通過SSH客戶端工具等遠程登陸伺服器來進行,比如對伺服器的遠程式控制制,只要具有相關用戶的許可權,任何人都是可以上去操作訪問伺服器。
3.4 linux系統中用戶角色劃分
在linux系統中用戶是分角色的,在linux系統中,由於角色不同,許可權和所完成的任務也不同;值得註意的是,對於linux系統來說,用戶的角色是通過UID和GID識別的;
特別是UID,在linux系統運維工作中,一個UID是唯一標識一個系統用戶的賬號(相當於我們的身份證)。用戶系統賬號的名稱(如chensiqi)其實給人(管理員)看的,linux系統能夠識別的僅僅是UID和GID這樣的數字。
用戶的UID就相當於我們的身份證號一樣,用戶名就相當於我們的名字。
- 超級用戶:root(皇帝)
- 預設是root用戶,UID和GID均為0.root用戶在每台unix/linux操作系統中都是唯一且真實存在的,通過它可以登錄系統,可以操作系統中任意文件和命令,擁有最高的管理許可權
- 在生產環境中,一般會禁止root賬號通過SSH遠程連接伺服器,當然了,也會更改預設的SSH埠,以加強系統安全。
- 最小化安全:1,安裝系統(最小化安裝+必要的包組)2,開啟的服務最小化
- 企業工作中:沒有特殊需求,應該儘量在普通用戶下操作任務,而不是root
- 再linux系統中,uid為0的用戶就是超級用戶。但是通常不這麼做,而是sudo管理提權,可以細到每個命令許可權分配怒。
- 普通用戶:為普通用戶授權(sudo)
su -root:角色切換,切換超級用戶
sudo ls:申請提權,臨時提高自己的許可權
虛擬用戶
與真實普通用戶區分開來,這類用戶最大的特點是安裝系統後預設就會存在,且預設情況大多數不能登錄系統,但是,他們是系統正常運行不可缺少的,他們的存在主要是方便系統管理,滿足相應的系統進程對文件屬主的要求。例如:系統預設的bin,adm,nobody,mail用戶等。由於伺服器業務角色的不同,有部分用不到的系統服務被緊致開機執行,因此,在做系統安全優化時,被禁止開機啟動了的服務對應的虛擬用戶也是可以處理掉的(刪除或註釋)
虛擬用戶角色傀儡:
linux安全優化:
1,安裝系統後可以刪除用不到的虛擬用戶,但最好不刪而是註釋掉,萬一齣問題可以恢復回來。
2,我們自己部署服務的時候,也會創建虛擬用戶,滿足服務的需求!例如;apache,nginx,mysql,nfs,rsync,nagios,zabbix,redis
3.5 linux系統中不同角色對應的UID說明
服務的運行需要用戶角色,可以不用登陸,因此,工作中我們需要運行如mysql資料庫,可以創建如下虛擬用戶:
命令被linux啟動的過程:
1,linux先在$PATH環境變數里找這個命令的腳本的位置
2,找到以後通過shell來執行
3,shell執行(bash + 命令)
- 因此,useradd-s/bin/bash(的本質意思就是-s 讓shell 用 bin目錄下的bash腳本來進行登錄)
- 而,useradd -s /sbin/nologin(的本質意思就是-s 讓shell用sbin目錄下的nologin腳本來登錄)
3.6 多用戶操作系統的安全
多用戶系統從實際來說使得系統管理更為方便了。從安全形度來說,多用戶系統也更為安全,比如普通用戶chensiqi下的某個文件不想讓其他用戶看到,只是設置一下該文件的許可權為只有普通用戶chensiqi一個用戶可讀可寫可編輯(後文會詳細講許可權)就行了,這樣一來只有普通用戶chensiqi一個用戶可以對其私有文件進行操作,從而達到了保護每個用戶的私有數據安全。
第4章 賬戶(user)和賬戶組(group)
4.1 用戶(user)介紹
- 通過上文對Linux系統多用戶特征的理解,我們知道Linux是一個多用戶,多任務的分時操作系統,如果要使用系統資源,就必須向系統管理員申請一個賬戶,然後通過這個賬戶進入系統。這個賬戶和用戶是一個概念,通過建立不同屬性的用戶,一方面,可以合理的利用和控制系統資源,另一方面也可以幫助用戶組織文件,提供對用戶文件的安全性保護。
- 每個用戶都有一個唯一的用戶名和用戶口令,在登陸系統時,只有正確輸入了用戶名和密碼,才能登入系統和相應的目錄(除了密碼驗證外,還可以是密鑰驗證)。
- 在生產環境中,我們一般會為每個有許可權管理伺服器的運維人員分配一個獨立的普通用戶賬號及8位(包含數字,字母,特殊字元)以上的密碼,如chensiqi。該人員只能通過建立的這個賬號登陸到系統中進行維護,當需要超級用戶許可權時,可以通過“sudo + 命令名”的方式來執行僅有root用戶才允許執行的許可權。當然,sudo許可權要儘量小。還有,當運維人數不多時,如2-3個,也可以直接su - 切換到超級用戶root下,在執行相應的維護工作,在這裡要特別提醒大家,維護時,如果不需要root許可權,就不要進入root用戶下操作,以減少誤操作對系統帶來的損失,請謹記!
提示:
sudo 和su是兩個重要切換用戶角色的命令,以後會詳細講解
4.2 用戶組(group)介紹
- 簡單的說,linux系統中的用戶組(group)就是具有相同特征的用戶(user)集合;為了便於大家理解,我做個比喻:一個公司,一個家庭就是一個集合,類似這裡的用戶組,公司的員工和家庭中的成員就相當於這裡的用戶。
- 有時我們需要讓多個用戶具有相同的許可權,比如查看,修改某一文件或目錄,如果不用用戶組,這種需求在授權時就很難實現。如果使用用戶組就方便多了,只需要把授權的用戶都加入到同一用戶組裡,然後通過修改該文件或目錄的對應的用戶組的許可權,讓用戶組具有符合需求的操作許可權,這樣用戶組下的所有用戶對該文件或目錄就會具有相同的許可權,這就是用戶組的用途。
- 將用戶分組是Linux系統(windows中也是一樣)中對用戶進行管理及控制訪問許可權的一種手段,通過定義用戶組,在很大程度上簡化了運維管理工作。
- 實際上,在日常生活中,對人類的分組也是無處不在的,大到國家,小到公司,家庭,學校,班級等等都類似linux中用戶組的概念,而其中的成員就類似linux用戶組中用戶的概念。
4.3 用戶和用戶組的對應關係
用戶和用戶組的對應關係有:一對一,一對多,多對一和多對多,方便大家理解,通過下圖進行展示:
- 一對一:即一個用戶可以存在一個組中,也可以是組中的唯一成員。如:root
- 一對多:即一個用戶可以存在於多個用戶組中。比如,上圖中普通用戶chensiqi可以是sa組成員,也可以是java用戶組成員,還可以是tech用戶組成員,這裡的chensiqi用戶具有sa,java,tech多個組的共同許可權。
- 多對一:多個用戶可以存在於一個組中,這些用戶具有和組相同的許可權,這條是上文講過的。
- 多對多:多個用戶可以存在多個組中。並且幾個用戶可以歸屬相同的組;其實多對多的關係是前面三條的擴展;理解了上面三條,這條也就好理解了。
4.4 用戶及用戶組配置文件介紹
linux系統下的賬戶文件主要有/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow 四個文件
4.4.1 與用戶相關的配置文件
- /etc/passwd #用戶的配置文件
- /etc/shadow #用戶影子口令文件
(1) 用戶的配置文件:/etc/passwd:
/etc/passwd文件中每行定義一個用戶賬號,有多少行就表示多少個賬號,在一行中可以清晰的看出,各內容之間又通過“:”號劃分了多個欄位,共7個部分,這7個部分分別定義了賬號的不同屬性,passwd文件實際內容如下:
提示:
passwd文件中有很多虛擬帳號,如bin,daemon等,一般來說,這些賬號是系統正常運行所需要的,在不確定的情況下,請不要隨意刪改此類賬號。
小結論:
1,useradd 添加用戶會更改/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow
2,passwd為用戶設置密碼會更改/etc/shadow
(2)用戶的影子口令文件/etc/shadow
前面提到了,由於passwd文件必須要被所有的用戶讀,所以會帶來安全隱患。而shadow文件就是為瞭解決這個安全隱患而增加的。我們來看下/etc/shadow文件的許可權:
- passwd -n 7 -x 60 -w 10 -i 30 chensiqi
chage -m 7 -M 60 -W 10 -I 30 chensiqi
chage -m 7 -M 60 -W 10 -I 30 chensiqi
小結論
1,useradd 添加用戶會更改/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow
2,passwd為用戶設置密碼會更改/etc/shadow
4.4.2 與用戶組相關的配置文件
/etc/group #用戶組配置文件
/etc/gshadow #用戶組的影子文件
用戶組配置文件/etc/group:
- /etc/group文件是用戶組的配置文件,內容包括用戶和用戶組,並且能顯示出用戶歸屬哪個用戶組,因為一個用戶可以歸屬一個或多個不同的用戶組;同一用戶組的用戶之間具有相似的特征。比如我們把某一用戶加入到root用戶組,那麼這個用戶就可以瀏覽root用戶家目錄的文件,如果root用戶把某個文件的讀寫執行許可權開放,root用戶組的所有用戶都可以修改此文件,如果是可執行的文件(比如腳本),root用戶組的用戶也是可以執行的;用戶組的特性在系統管理中為系統管理員提供了極大的方便,但安全性也是值得關註的,如某個用戶下有對系統管理有最重要的內容,最好讓用戶擁有獨立的用戶組,或者是把用戶下的文件的許可權設置為完全私有;另外root用戶組一般不要輕易把普通用戶加入進去。
- /etc/group文件就是前面提到的記錄GID與用戶組名稱的。/etc/group文件同/etc/passwd類似,其文件許可權也是644
小結論
1,groupadd 添加用戶組會更改/etc/group,/etc/gshadow
/etc/gshadow是/etc/group的加密咨詢文件,比如用戶組(Group)管理密碼就是存放在這個文件。/etc/gshadow和/etc/group是互補的兩個文件;對於大型伺服器,針對很多用戶和組,定製一些關係結構比較複雜的許可權模型,設置用戶組密碼是極有必要的。比如我們不想讓一些非用戶組成員永久擁有用戶組的許可權和特性,這時我們可以通過密碼驗證的方式來讓某些用戶臨時擁有一些用戶組特性,這時就要用到用戶組密碼:/etc/gshadow格式如下,每個用戶組獨占一行;