在 Linux 中鎖定和解鎖用戶的三種方法
在多用戶操作的服務(wù)器中鎖定(禁用)用戶可能有多種原因,比如某個(gè)用戶的登錄密碼被泄露,或者某個(gè)用戶離職,但是該用戶下還有部分文檔未完成轉(zhuǎn)移,而因?yàn)闅w檔的目的暫時(shí)不刪除該用戶,而只是鎖定等等。
今天我們來介紹 3 種在Linux命令行中鎖定用戶的方法,同時(shí)也包含如何解鎖用戶。
注意,要執(zhí)行鎖定用戶的操作,需要有管理員權(quán)限,可以是 root 用戶,或者是具有 sudo 權(quán)限的用戶。
方法1:使用 passwd 命令鎖定和解鎖用戶
關(guān)于 passwd 命令,我們?cè)谥暗奈恼拢ㄊ褂?passwd 命令在 Linux 中處理用戶密碼)中介紹過,它主要用于處理賬戶的密碼,也可以用于鎖定用戶。現(xiàn)在我們?cè)賮砘仡櫼幌隆?
在先前那篇文章中我們提到過,passwd 命令主要適用于 /etc/passwd 文件,這個(gè)文件可以手動(dòng)修改,但我們一般不這樣做,而且也不建議手動(dòng)修改。
要使用 passwd 命令鎖定用戶,可以使用 -l 或 -lock 選項(xiàng):
鎖定(或解鎖)后,可以使用 passwd 命令的 -S 或 -status 選項(xiàng)來檢查用戶的當(dāng)前狀態(tài):
其輸出及說明,我們?cè)凇妒褂?passwd 命令在 Linux 中處理用戶密碼》一文中介紹過,大家可參閱一下,本文就不在贅述了。
解鎖用戶,使用 -u 或 –unlock 選項(xiàng):
通過這種方式鎖定用戶存在一個(gè)問題,由于它是作用于 /etc/passwd 文件,因此,被鎖定的用戶仍然可以通過 SSH 密鑰登錄(如果設(shè)置了通過 SSH 密碼登錄)。關(guān)于這個(gè)問題,我們?cè)谙旅嬉还?jié)來介紹下如何處理。
方法2:使用 usermod 命令鎖定和解鎖用戶
usermod 命令主要用于修改 Linux 中的用戶賬戶,也可以用來鎖定或解鎖用戶。
鎖定用戶,可以使用 usermod 命令的 -L 選項(xiàng):
解鎖用戶,使用 -U 選項(xiàng):
鎖定或解鎖后,如何驗(yàn)證操作是否成功了呢?usermod 命令也適用于 /etc/passwd 文件,因此也可以使用 passwd -S <username> 命令來檢查用戶的狀態(tài)。
既然 usermod 用戶也作用于 /etc/passwd 文件,那么這也意味著被鎖定的用戶仍然可以通過 SSH 密鑰登錄,如何解決這個(gè)問題呢?
有一種辦法,是可以將用戶的 shell 更改為 nologin,這樣將不允許用戶登錄 shell。至于如何修改 shell,我們將在以后單獨(dú)介紹,感興趣的朋友可以先行查閱相關(guān)資料。
另外一種辦法,是為用戶設(shè)置一個(gè)過去的日期作為過期日期,意思是在過去的那個(gè)日期禁用賬戶,這樣也可以鎖定它。
過去的這個(gè)日期,需要確保是在 1970-01-02 和當(dāng)前日期之間。
通過上述方法鎖定的用戶,解鎖的時(shí)候,可以使用如下方法:
方法3:使用 chage 命令鎖定和解鎖用戶
chage 命令用于更改用戶密碼到期信息。它可以用于在非活動(dòng)的特定天數(shù)后自動(dòng)鎖定非活動(dòng)用戶。
基本上,通過上面方法 2 所做的工作,也可以通過如下所示的 chage 命令來實(shí)現(xiàn):
使用上述命令,就可以將過期日期設(shè)置為 1970-01-02,可以通過如下方式查看詳細(xì)信息:
要解鎖用戶,可以通過如下方式刪除到期日期:
在 Linux 命令行中,要完成某個(gè)任務(wù),一般來說都會(huì)有多種方法。我們?cè)诒疚闹薪榻B了三種鎖定/解鎖用戶的方法,大家如有其他更好的方法,歡迎討論。