linux禁用用户账号,技术|在 Linux 系统中禁用与解禁用户的账号
總有這樣的時候:有時你需要禁用某位 Linux 用戶的賬號,有時你還需要反過來解禁用戶的賬號。 本文將介紹一些管理用戶訪問的命令,并介紹它們背后的原理。
假如你正管理著一臺 Linux 系統,那么很有可能將遇到需要禁用一個賬號的情況。可能是某人已經換了職位,他們是否還需要該賬號仍是個問題;或許有理由相信再次使用該賬號并沒有大礙。不管上述哪種情況,知曉如何禁用賬號并解禁賬號都是你需要知道的知識。
需要你記住的一件重要的事是盡管有多種方法來禁用賬號,但它們并不都達到相同的效果。假如用戶使用公鑰/私鑰來使用該賬號而不是使用密碼來訪問,那么你使用的某些命令來阻止用戶獲取該賬號或許將不會生效。
使用 passwd 來禁用一個賬號
最為簡單的用來禁用一個賬號的方法是使用 passwd -l 命令。例如:
$ sudo passwd -l tadpole
上面這個命令的效果是在加密后的密碼文件 /etc/shadow 中,用戶對應的那一行的最前面加上一個 ! 符號。這樣就足夠阻止用戶使用密碼來訪問賬號了。
在沒有使用上述命令前,加密后的密碼行如下所示(請注意第一個字符):
$6$IC6icrWlNhndMFj6$Jj14Regv3b2EdK.8iLjSeO893fFig75f32rpWpbKPNz7g/eqeaPCnXl3iQ7RFIN0BGC0E91sghFdX2eWTe2ET0:18184:0:99999:7:::
而禁用該賬號后,這一行將變為:
!$6$IC6icrWlNhndMFj6$Jj14Regv3b2EdK.8iLjSeO893fFig75f32rpWpbKPNz7g/eqeaPCnXl3iQ7RFIN0BGC0E91sghFdX2eWTe2ET0:18184:0:99999:7:::
在 tadpole 下一次嘗試登錄時,他可能會使用他原有的密碼來嘗試多次登錄,但就是無法再登錄成功了。另一方面,你則可以使用下面的命令來查看他這個賬號的狀態(-S = status):
$ sudo passwd -S tadpole
tadpole L 10/15/2019 0 99999 7 -1
第二項的 L 告訴你這個賬號已經被禁用了。在該賬號被禁用前,這一項應該是 P。如果顯示的是 NP 則意味著該賬號還沒有設置密碼。
命令 usermod -L 也具有相同的效果(添加 ! 來禁用賬號的使用)。
使用這種方法來禁用某個賬號的一個好處是當需要解禁某個賬號時非常容易。只需要使用一個文本編輯器或者使用 passwd -u 命令來執行相反的操作,即將添加的 ! 移除即可。
$ sudo passwd -u tadpole
passwd: password expiry information changed.
但使用這種方式的問題是如果用戶使用公鑰/私鑰對的方式來訪問他/她的賬號,這種方式將不能阻止他們使用該賬號。
使用 chage 命令來禁用賬號
另一種禁用用戶賬號的方法是使用 chage 命令,它可以幫助管理用戶賬號的過期日期。
$ sudu chage -E0 tadpole
$ sudo passwd -S tadpole
tadpole P 10/15/2019 0 99999 7 -1
chage 命令將會稍微修改 /etc/shadow 文件。在這個使用 : 來分隔的文件(下面將進行展示)中,某行的第 8 項將被設置為 0(先前為空),這就意味著這個賬號已經過期了。chage 命令會追蹤密碼更改期間的天數,通過選項也可以提供賬號過期信息。第 8 項如果是 0 則意味著這個賬號在 1970 年 1 月 1 日后的一天過期,當使用上面顯示的那個命令時可以用來禁用賬號。
$ sudo grep tadpole /etc/shadow | fold
tadpole:$6$IC6icrWlNhndMFj6$Jj14Regv3b2EdK.8iLjSeO893fFig75f32rpWpbKPNz7g/eqeaPC
nXl3iQ7RFIN0BGC0E91sghFdX2eWTe2ET0:18184:0:99999:7::0:
^
|
+--- days until expiration
為了執行相反的操作,你可以簡單地使用下面的命令將放置在 /etc/shadow 文件中的 0 移除掉:
% sudo chage -E-1 tadpole
一旦一個賬號使用這種方式被禁用,即便是無密碼的 SSH 登錄也不能再訪問該賬號了。
本文由 LCTT 原創編譯,Linux中國 榮譽推出
總結
以上是生活随笔為你收集整理的linux禁用用户账号,技术|在 Linux 系统中禁用与解禁用户的账号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle学习数据,oracle学习中
- 下一篇: linux 内核模块太大,Linux内核