在Linux上,有多種方式讓不安份的用戶無法登錄。
1.修改用戶配置文件/etc/shadow,將第二欄設置為“*”
如下。那么該用戶就無法登錄。但是使用這種方式會導致該用戶的密碼丟失,要再次使用時,需重設密碼[再次啟用這個帳號的方法是把“*”去掉就可以了
test:*:15230:0:99999:7:::
2.使用命令usermod
usermod -L test ## 鎖定帳號test usermod -U test ## 解鎖帳號test
3.通過修改shell類型
這種方式會更加人性化一點,因為你不僅可以禁止用戶登錄,還可以告訴他你這么做的原因。如下:
chsh test -s /sbin/nologin #將用戶testid的shell進行更改
##修改/etc/nologin.txt(沒有就新建一個),
##在里面添加給被禁止用戶的提示
#解禁用戶的方式就是把shell改為他原有的就可以了。
4.禁止所有的用戶登錄
如果你是root用戶,當你不想讓所有用戶登錄時(比如你要維護系統升級什么的),如果按上面的方式,一
個一個地去禁止用戶登錄,這將是很……無聊的事。而且還容易出錯。下面有一種簡潔有效的方式:
##在/etc目錄下建立一個nologin文檔
touch /etc/nologin ##如果該文件存在,那么Linux上的所有用戶(除了root以外)都無法登錄
##在/etc/nologin(注意:這可不是3中的nologin.txt啊!)寫點什么,告訴用戶為何無法登錄
cat /etc/nologin
9:00-10:00 系統升級,所有用戶都禁止登錄!
##解禁帳號也簡單,直接將/etc/nologin刪除就行了!
補充:/etc/nologin 和/etc/nologin.txt , 這兩個檔案的用途是不相同的喔!
當/etc/nologin檔案存在時,則任何一個一般身份帳號在嘗試登入時,都僅會獲得/etc/nologin內容的資訊,而無法 登入主機。 舉例來說,當我建立/etc/nologin ,並且內容設定為『This Linux server is maintaining....』, 那么任何人嘗試登入時,都僅會看到上面提到的這段訊息,而且無法登入喔! 一直要到/etc/nologin 被移除后,一般身份使用者才能夠再次的登入啊
/etc/nologin文件存在時root還是可以通過su user切換到普通用戶,但通過ssh user@xx.xx.xx.xx的方式則會顯示/etc/nologin文件中的內容