過期賬戶和非活躍賬戶的區別
在類似以下命令之後:
$ usermod -e <yesterday> -f <tomorrow> bea
Bea 的帳戶將過期,但仍然有效(直到明天)。
有什麼不同?昨天可能發生而今天不可能發生的事情是什麼?今天會發生什麼,但明天不會發生?
usermod -e
通常將日期作為參數:如果您指定usermod -e 2019-12-31 joeuser
,則 Joe 使用者的帳戶將只能工作到年底,並且不會再使用,除非管理員通過設置新帳戶到期日期或通過設置新帳戶到期日期重新啟用該帳戶用於usermod -e "" joeuser
允許無限期啟用帳戶而沒有計劃的到期時間。您還可以使用
usermod -e 1 joeuser
立即禁用帳戶:這將有效地將帳戶設置為在 1970 年 1 月 2 日到期,這已成為過去。禁用這樣的帳戶適用於所有身份驗證機制:即使使用者使用 SSH 密鑰、智能卡、RSA SecurID 或任何其他身份驗證機制,該帳戶也不會接受登錄。當帳戶像這樣被禁用時,使用者無法單獨重新啟用它:唯一的辦法是聯繫系統管理員。
請注意,此帳戶到期與**密碼到期完全分開。
usermod -f
,另一方面,期望作為參數的天數。這是一個在使用者密碼過期時開始計時的時鐘:例如,如果您將 Joe 使用者的密碼設置為在 90 天后過期 ( )passwd -x 90 joeuser
和usermod -f 14 joeuser
如果他嘗試登錄,系統將強制他更改密碼的時間正好有 14 天。如果他這樣做,新密碼將再次有效,有效期為 90 天。如果 Joe 在這 14 天內未登錄,則帳戶將被鎖定,如果 Joe 仍需要訪問系統,則需要聯繫管理員解鎖。
請注意,歷史上
passwd -l
用來表示鎖定帳戶;使用現代 Linux PAM 實現,它實際上意味著只鎖定密碼。如果帳戶配置了 SSH 密鑰或其他一些身份驗證方法,即使在passwd -l
.目前推薦的在不刪除或更改其配置的情況下完全禁用帳戶的方法是
usermod -e 1 <username>
. 這保證對新舊 PAM 實現同樣有效。將使用者的 shell 更改為
/bin/false
顯示消息然後退出的命令也可以禁用任何身份驗證方法的命令行登錄,但作為副作用,有關使用者目前 shell 的資訊將失去。此外,如果系統具有使用系統密碼進行身份驗證的其他服務(如電子郵件或 FTP),則更改 shell 可能不會禁用對它們的訪問。