在上一章節中,我們學習瞭如何利用 useradd
新增一個新的使用者,利用 passwd
給使用者設定、修改密碼。但是如果手一抖不小心使用者資訊新增錯了,或者需要修改使用者資訊,該如何操作呢?
前面也講過,我們可以手動修改 /etc/passwd
以及 /etc/shadow
檔案來新增一個使用者,那麼手動修改檔案當然也可以修改使用者資訊。不過今天要為大家講解的是使用Linux的 usermod
命令來修改使用者資訊。
一、修改使用者命令 usermod
Linux usermod命令可用來修改使用者帳號的各項設定。
useradd [選項] 使用者名稱
該命令常用的選項及各自的含義如下:
-c
修改使用者的說明資訊,對應於修改/etc/passwd
檔案中使用者資訊的第5個資訊-d
修改使用者的主目錄,對應於修改/etc/passwd
檔案中目標使用者資訊的個資訊-e
修改使用者的失效日期,格式為 “YYYY-MM-DD”,對應於修改/etc/shadow
檔案使用者密碼資訊的第8個資訊-g
修改使用者的初始組,對應於修改/etc/passwd
檔案使用者資訊的第4資訊(GID)-u
修改使用者的UID,對應於修改/etc/passwd
檔案使用者資訊的第3個資訊(UID)-G
修改使用者的附加組,其實就是把使用者加入其他使用者組,即修改 /etc/group 檔案;-l
修改使用者名稱稱;-L
臨時鎖定使用者(Lock)-U
解鎖使用者(Unlock),和 -L 對應-s
修改使用者的登入 Shell,預設是 /bin/bash
從上面的引數來看,與上一章講解的 useradd
命令的引數對比來看,這兩個命令的引數是差不多的。只不過usermod
命令比useradd
多了 -L
和 -U
兩個引數。
1、比如我現在要鎖定在上一章建立的使用者testuser
:
$ usermod -L testuser
鎖定使用者的本質,就是使使用者的密碼失效,使之不能登入,所以我們去看 /etc/shadow
密碼檔案,發現這個使用者的密碼位前面多了一個 !
號:
2、解鎖使用者
既然能鎖定使用者,自然也能解鎖使用者:
$ usermod -U testuser
執行命令之後,我們再去檢視 /etc/shadow
檔案,密碼位前面的 !
就取消了。
3、修改使用者說明
$ usermod -c "modify user descript" testuser
在修改使用者說明之前,我們先來看看現在的使用者說明是什麼:
$ grep "testuser" /etc/passwd
執行命令命令之後,我們再來看下使用者說明:
使用者說明已經被成功修改了。
4、把使用者加入新的組
比如我們要把 testuser
使用者新增到root組:
$ usermod -G root testuser
二、修改使用者的密碼狀態: chage
該命令不僅可以用來修改使用者的密碼狀態,還可以和 passwd -S
命令一樣 顯示詳細的使用者密碼資訊。
chage [選項] 使用者名稱
該命令常用的選項及各自的含義如下:
-m
:密碼可更改的最小天數,為零時代表任何時候都可以更改密碼,對應/etc/shadow
檔案中的第4個欄位-M
:密碼保持有效的最大天數,對應/etc/shadow
檔案中的第5個欄位-w
:使用者密碼到期前,提前收到警告資訊的天數,對應/etc/shadow
檔案中的第6個欄位-E
:帳號到期的日期,過了這天,此帳號將不可用。對應/etc/shadow
檔案中的第8個欄位-d
:上一次更改的日期,對應/etc/shadow
檔案中的第3個欄位-i
:停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用, 對應/etc/shadow
檔案中的第7個欄位-l
:列出使用者的詳細密碼狀態
我們先來檢視下 testuser
的密碼資訊:
$ chage -l testuser
各資訊意思如下:
Last password change
: 最近一次密碼修改時間: 6月 18, 2020Password expires
:密碼過期時間:從不Password inactive
:密碼失效時間:從不Account expires
:帳戶過期時間:從不Minimum number of days between password change
:兩次改變密碼之間相距的最小天數:0Maximum number of days between password change
:兩次改變密碼之間相距的最大天數:99999Number of days of warning before password expires
:在密碼過期之前警告的天數:7
1、修改密碼過期時間
我可以通過如下命令修改我的密碼過期時間,設定60天后過期:
$ chage -M 60 testuser
2、設定密碼失效時間
$ chage -i 5 testuser
意思是在密碼過期後5天,密碼自動失效,這個使用者將無法登陸系統了。
3、chage命令還有個硬核功能,可以強制使用者在第一次登入後,必須先修改密碼,並利用新密碼重新登陸系統,此使用者才能正常使用
我們建立一個新的使用者 testuser2
,然後設定它的密碼建立日期為1970年1月1日:
# 建立使用者
$ useradd testuser2
#設定密碼123456
$ echo "123456" | passwd --stdin testuser2
#設定密碼建立日期為1970年1月1日
$ chage -d 0 testuser2
執行完成之後,我們用testuser2
使用者去登入系統,提示需要去修改密碼:
三、刪除使用者命令:userdel
userdel
命令使用很簡單,用於刪除使用者帳號的相關資料。
userdel [選項-r] 使用者名稱
若不加 -r
引數,則僅刪除使用者帳號,而不刪除使用者宿主目錄,那麼使用者目錄就會變成沒有屬主和屬組的目錄,也就是垃圾檔案。
比如分別刪除 testuser
以及 testuser2
使用者:
# 刪除testuser使用者,不加-r引數
$ userdel testuser
# 刪除testuser2使用者,加-r引數
$ userdel -r testuser2
可以看到,刪除 testuser
不加 -r
引數,執行命令之後,該使用者的宿主目錄保留了。
四、檢視使用者的UID和GID命令:id
id
命令比較簡單,可以查詢使用者的UID、GID 和附加組的資訊:
id 使用者名稱
比如檢視 eddy
使用者的:
$ id eddy
$ uid=1009(eddy) gid=1009 groups=1009
執行命令之後到uid(使用者ID)、gid(初始組ID), groups是使用者所在組。
現在我把eddy
使用者加入root
組:
大家發現該使用者的附加組資訊中多了一個root
組。
今天為大家講解了如何修改Linux使用者資訊,修改使用者密碼以及如何刪除使用者。下一章繼續為大家講解Linux使用者相關的其他操作命令。
本作品採用《CC 協議》,轉載必須註明作者和本文連結