1. 程式人生 > >Linux下的使用者管理(一)——使用者及組的建立和刪除

Linux下的使用者管理(一)——使用者及組的建立和刪除

1.使用者存在的意義
系統使用者即系統的使用者,使用者管理是對檔案進行管理,使用者的存在是為了回收權力

2.組存在的意義
組的存在是為了共享權力,組和使用者是兩個不同的機制

3.組的分類
組可以分為初始組和附加組;

初始組 使用者出生時就加入的組
附加組 使用者後期加入的組

4.系統中檢視使用者資訊的命令

命令 作用
(1)whoami 檢視當前使用者
(2)id 使用者名稱 檢視使用者的id資訊
(3)id -u 使用者名稱 檢視使用者的uid(使用者出生時就有的id)
(4)id -g 使用者名稱 檢視使用者的gid (使用者的初始組)
(5)id -G 使用者名稱 檢視使用者的所有組的id(包括使用者的初始組和附加組)
(6)id -n 使用者名稱 檢視使用者組的名字(和-G一起使用可以檢視使用者的所有組的名字)

以上命令的作用由下圖可以看出:
在這裡插入圖片描述
5.使用者切換
(1)su - student 切換使用者,還在超級使用者下,但視窗的環境變了
‘-’會改變使用者所在環境和身份,不加‘-’環境不變身份變了,su表示切換身份;
低階使用者切換向高階使用者需要輸入密碼,高階向低階不需要輸密碼,平級切換也需要輸密碼,密碼沒有回顯
***** 操作完後 exit退出 ,多層次開啟容易出錯,是不規範的操作 *****

如圖:
在這裡插入圖片描述
(2)gnome-session-quit --force 登出當前使用者,重新登陸

6.使用者在系統中的儲存方式
(1)/etc/passwd 使用者資訊檔案(檢視這些檔案可以用vim)
使用者名稱:x是佔位符,密碼:uid(使用者的id):gid(使用者初始組的id): 使用者說明文字: 家目錄: 使用者預設使用軟體 (預設shell必須是系統裡已有的軟體)

如圖是vim檢視passwd檔案和group檔案
在這裡插入圖片描述
root列表示使用者名稱;x列是佔位符,這個位置上的是使用者密碼;0列是root的uid;第二個0列是root使用者的gid;下來是使用者說明;/root列是該使用者的家目錄;/bin/bash列表示的是該使用者預設使用的軟體
在這裡插入圖片描述
(2)/ect/group 使用者組資訊檔案
組的名字:組密碼:組id:組成員
如圖所示:
在這裡插入圖片描述
(3)/etc/shadows 認證資訊檔案
(4)/etc/skel/.* 預設開啟shell檔案的配置,使用者的骨檔案
(5)/home/username 使用者的家目錄( 使用者和系統交流時對話的軟體,含有nologin不提供互動介面,sbin下含有nologin,其他的shell是提供互動介面的)
*********注:序號不能超過2^32,uid最小是1000,最大是60000 *********

7.檢視命令當前的狀態
watch 檢視命令當前的狀態,進入之後ctrl+c退出
如:watch date 檢視時間 watch -n 1 每秒更新一次
注:同時監控多個命令時可以用’ ‘將watch -n 1後的命令括起來,’ '裡的命令可以用;隔開
例如:使用者資訊監控命令 watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;ls -l /home/’

如圖第一行的命令是每秒更新一次並檢視passwd和group檔案的後三行;第二行則是檢視後七行
在這裡插入圖片描述
8.使用者管理命令
(1)新建使用者

命令 作用
useradd 使用者名稱 建立新的使用者
useradd -u xxx 使用者名稱 指定使用者的uid即建立id為xxx的使用者(uid預設為1001,因為student使用者的uid是1000)
useradd -g xxx 使用者名稱 指定使用者的gid,此時的xxx必須是已經存在的組
useradd -G xxx 使用者名稱 指定使用者的附加組,這個組也必須存在
useradd -c “www” 使用者名稱 指定使用者的說明
useradd -d /home/hhh 使用者名稱 指定使用者的家目錄
useradd -s /bin/lala 使用者名稱 指定使用者的預設shell

以下是依次建立並監控上述要求的使用者的過程,-g和 -G後的id必須是已經存在的
在這裡插入圖片描述

下圖是一次性將所有要求都實現在一個使用者上的操作
在這裡插入圖片描述
(2)刪除使用者

userdel 使用者名稱 刪除使用者但沒有刪除使用者的配置檔案
userdel -r 使用者名稱 刪除使用者並且刪除使用者的配置檔案

如圖是將剛剛建立的所有使用者的過程可以監控到passwd和group檔案下已經沒有了剛剛建立的所有使用者的資訊
在這裡插入圖片描述
注:一般刪除使用者時避免出現問題都加“ -r ”刪除使用者並且刪除其配置檔案
(3)新建組

groupadd 組名 建立組
groupadd -g xxx 組名 指定組的id

如圖:
在這裡插入圖片描述
(4)組的刪除
groupdel 組名 ##刪除組
注:當組內的使用者沒有刪除時組刪除不了

如圖 當組內的使用者還存在時刪除組會報錯
在這裡插入圖片描述
而刪除了組下的使用者後刪除組就不會報錯
在這裡插入圖片描述
(5)如果建立好使用者之後用su - xxx切換到了新使用者,又開啟一個新的terminal,在其中要刪除剛剛建好的使用者這時會報錯:此使用者被程序xxxx佔用,這是kill -9 程序ID 可以殺死程序

下面是建立了一個新的使用者並切換到該使用者下,開啟一個新的terminal,並刪除剛剛建立的使用者,此時系統提示這個使用者正在被程序佔用
在這裡插入圖片描述
kill -9 程序號 殺死該程序,之後再刪除使用者,這時會自動切換回之前的目錄
在這裡插入圖片描述