天天看點

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

1、使用者配置檔案和密碼配置檔案

之前用到過一個指令 useradd ,這是一個建立使用者(增加使用者)的指令,

首先來看一個配置檔案 /etc/passwd ,見下圖,

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

passwd 這個檔案就是使用者的密碼檔案,是一個核心的配置檔案。建立一個新的使用者,都會在這個檔案下增加一行内容,看一下最後的三行,是之前建立的使用者:lys 和 user1 。

分析一下這些使用者的組成,可以看到每個使用者都由“:”分割成7段。每段含義為:第一段是使用者名;第二段都是 x (表示密碼);第三段是所有者ID(即uid);第四段是所屬組ID(即gid);第五段表示使用者的注釋資訊,沒有實質作用,且多數為空,不需太關注;第六段為使用者的加目錄,root使用者為 /root/ ,普通使用者為 /home/使用者名 ;第七段為使用者的 shell 。一般情況下,第七段為 /bin/bash 表示這個使用者是可以登入的,而如果是 /sbin/nologin ,則表示這個使用者是不能登入的,即使設定了密碼也是不能登入的。

還有一個檔案是專門存放密碼的,為 /etc/shadow ,見下圖,

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

檔案 /etc/shadow 上的内容和 /etc/passwd 上的使用者是一一對應的。這個檔案是專門用來控制使用者的密碼的,與 /etc/passwd 類似,每個使用者都由“:”分割成了九段。每段含義為:第一段是使用者名;第二段是使用者的密碼,在 Linux 系統當中隻有 root 使用者有密碼,還是加密的,而且這個密碼是不能編譯的,其他使用者都是 * 或 !! ;第三段是一個數字,表示天數,從1970年1月1日開始到更改密碼的天數;第四段數字預設是0,表示的是更改密碼不受時間限制;第五段數字預設是99999,表示的是密碼多少天後到期;第六段數字預設是7,表示密碼到期前警告的提醒天數;第七段預設為空,表示賬戶的失效期限;第八段預設為空,表示賬戶在1970年1月1日以來将被禁用的天數;第九段預設為空,為保留字段,沒有實際意義。

做個實驗,給使用者 lys 設定一個密碼,這個密碼和 root 的密碼一樣,見下圖,

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

上圖中,指令 head -n1 /etc/shadow; tail -n3 /etc/shadow ,表示在一行打兩個指令,用分号做分割。可以看出,使用者 root 和使用者 lys 的密碼雖然是一樣的,但是加密的字元串是不一樣的。

現在來看一下 man shadow ,見下圖,

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理
使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

注意上圖中,有個最近更改密碼的日期,計算方法是從1970年1月1日開始到更改密碼的天數,這是第三段的數字内容。有一行内容是 sp_min - days before which password may not be changed ,意思為要過多少天才可以更改密碼,這是第四段的内容,預設為0表示不受限制。下一行内容是 sp_max - days after which password must be changed ,意思為密碼多少天後到期,這是第五段的内容,預設為99999 。下一行内容是 sp_warn - days before password is to expire that user is warned of pending password expiration ,意思為密碼到期前的警告天數,預設為 7 ,即前7天會跳出警告,提醒密碼7天後到期,這是第六段的内容。下一行内容是 sp_inact - days after password expires that account is considered inactive and disabled ,表示為賬号的失效期限,預設為空,這是第七段的内容。下一行内容是 sp_expire - days since Jan 1, 1970 when account will be disabled ,表示為賬戶的生命周期,跟第三段差不多,意思為賬戶在1970年1月1日以來将被禁用的天數,這是第八段的内容。下一行内容是 sp_flag - reserved for future use ,為保留字段,沒有實際意義,預設為空,這是第九段的内容。

以上就是密碼配置檔案的内容意義,僅作了解,正常工作中是用不到的。

2、使用者組管理

還有一個關于組的檔案,/etc/group 見下圖,

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理
使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

這個和檔案 /etc/passwd 不太一樣,沒有完全對應上,但是 /etc/passwd 檔案有的,這邊都有,關于字段的含義,也不用深究,意思都差不多。

再來看一個檔案 /etc/gshadow ,這是和 /etc/shadow 對應的檔案,見下圖,

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理
使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

這個檔案 /etc/gshadow 也是組的密碼配置檔案。再來看下圖情況,都會發現有兩個檔案,

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

上圖中的指令都是按兩下 Tab 鍵的結果,其中帶-号的檔案,都是系統自動備份的檔案。如果不小心删除掉原來的檔案,就可以通過拷貝系統自動備份的檔案來恢複原來的檔案。

關于組有兩個指令要介紹,一個是指令 groupadd ,增加組的意思,另一個指令是 groupdel ,删除組的意思。

現在建立一個組 grp1 ,見下圖,

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

增加組的同時可以指定 ID ,組 grp1 的ID是1003,再建立一個指定 g ID 為 1005 的組 grp2 ,自定義ID最好是1000以上的,否則都會顯示已經存在。

既然可以建立組,也可以删除組,使用指令 groupdel ,見下圖,

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

現在把組 user1 删除掉,見下圖,

使用者配置檔案和密碼配置檔案、使用者組管理、使用者管理

系統提示不能删除使用者 user1 的主組,這是因為組 user1 裡面有一個使用者 user1 。也就是說,删除一個組的前提條件是這個組裡面沒有使用者。