一.用戶組 前面章節知道用戶賬戶在控制單個用戶安全性方面很好,但涉及到共用資源或把用戶類型分組時,組概念就出來了。 組許可權允許多個用戶對系統中的對象(比如文件,目錄,設備等)共用一組共用的許可權。 在centos中創建一個用戶會為該用戶單獨創建一個組,這樣可以更安全一些。 1.1 /etc/group ...
一.用戶組
前面章節知道用戶賬戶在控制單個用戶安全性方面很好,但涉及到共用資源或把用戶類型分組時,組概念就出來了。 組許可權允許多個用戶對系統中的對象(比如文件,目錄,設備等)共用一組共用的許可權。 在centos中創建一個用戶會為該用戶單獨創建一個組,這樣可以更安全一些。
1.1 /etc/group 文件
與用戶一樣,組信息也保存在系統的一個文件中。/etc/group文件包含系統上用到的每個組的信息。如下圖所示:
GID在500以內屬於系統賬戶,而用戶組的GID則從500開始分配(好像不同發佈版有所不同)。上面有三個欄位:組名,組密碼,GID。組密碼是允許非組內成員通過組密碼臨時成為該組成員,但這功能並不常用。創建組時不能直接通過/etc/group文件來添加用戶到一個組,要用usermod命令,上篇有講到該命令。
1.2 創建新組 groupadd
下麵使用groupadd 命令在系統上創建新組(gtest),如下圖所示:
在創建新組後,預設沒有用戶被分配到該組下,使用usermod或useradd都可以將用戶分配到指定組:例如之前安裝mysql時,使用useradd來創建mysql用戶,並指定到mysql組中.如下圖所示:
下麵使用useradd來創建用戶gtest1和gtest2,指定到gtest組8001中,如下圖所示:
1.3 修改組
修改組使用groupmod命令可以修改已有組的GID(-g選項)或組名(-n選項)。當修改組名時,gid和組成員不變,只有組名改變,由於所有安全許可權都是基於GID的,所以隨變修改組名不會影響文件的安全性。下麵使用groupmod –n來修改gtest組名為gtest1。
二.文件許可權
在瞭解用戶和組之後,下麵來解讀文件許可權,通過ls 命令輸出來介紹分析。下麵隨意定位在個目錄下。
上面結果第一列,就是描述文件和目錄許可權的編碼。第一列的第一個字元分別代表了對象的類型:
(1) – 代表文件
(2) d 代表目錄
(3) l 代錶鏈接
(4) c 代表字元型設備
(5) b 代表塊設備
(6) n 代表網路設備
第一列之後有3組三字元的編碼,每一組定義了3種訪問許可權,沒有許可權是單破折線:
(1) r 代表對象是可讀的
(2) w 代表對象是可寫的
(3) x 代表對象是可執行的
上面3組許可權分別對應對象的3個安全級別:對象的屬主,對象屬組,系統其它用戶
例如:rwxr-xr-x 這樣一組。前三個字元(rwx)是對象的屬主許可權(用戶hsr),中間三個字元(r-x)是對象屬組的許可權(組hsr下的用戶),後面三個字元(r-x)是系統其它用戶許可權。
在上面這一組許可權中,屬組和其它用戶對該文件沒有寫入許可權,只有讀和執行許可權。