Ssh
完全鎖定伺服器上的使用者帳戶,包括 ssh
如果可能的話,我需要鎖定一些使用者帳戶,而不要弄亂他們的 HOME。
正常的方法是
usermod -L user
,但它似乎使用公鑰身份驗證(通常在此伺服器上使用)保持開放的 ssh 登錄。我知道我可以只是
mv /home/user/.ssh /home/user/_ssh
或類似的東西,但這是正確的做法嗎?我錯過了什麼?
文件
man usermod
為您提供了推薦的解決方案:
-L
,**--lock
**鎖定使用者密碼。!
這會在加密密碼前面放置一個,從而有效地禁用密碼。您不能將此選項與-p
或一起使用-U
。注意:如果您想鎖定帳戶(不僅僅是使用密碼訪問),您還應該
EXPIRE_DATE
將1
.接著
-e
,**--expiredate EXPIRE_DATE
**使用者帳戶將被禁用的日期。日期以格式指定YYYY-MM-DD
。空
EXPIRE_DATE
參數將禁用帳戶到期。所以,把它變成一個真實的例子
usermod -L -e 1 someuser # Lock usermod -L -e '' someuser # Unlock
如果您可能在其中設置了預設到期日期,
/etc/default/useradd
則可以將其值(如果有)作為解鎖過程的一部分包括在內:usermod -U -e "$( . /etc/default/useradd; echo "$EXPIRE")" someuser
對於帳戶過期的使用者,計劃通過
cron
的作業也會被禁用,但不僅僅是鎖定帳戶。journalctl -u cron
來自顯示過期使用者帳戶名的錯誤消息(在本例中test2
):Apr 30 11:47:01 pi CRON[26872]: pam_unix(cron:account): account test2 has expired (account expired) Apr 30 11:47:01 pi cron[472]: Authentication failure Apr 30 11:47:01 pi CRON[26872]: Authentication failure
計劃的作業
at
仍未嘗試。(我不清楚他們是否會在超過到期日後執行;從經驗上看似乎不是。)已在鎖定和過期帳戶下執行的其他程序不受影響並繼續執行。