Linux下鎖定帳號,禁止登陸系統的設置總結

 

在咱們運維工做中,會常常要求一些用戶不容許登錄系統,以加固系統安全。今天這裏介紹下鎖定帳號登錄的幾種方法:node

1、最經常使用方式,修改用戶的shell類型爲/sbin/nologin  (推薦使用)
這種方式會更加人性化一點,由於不只能夠禁止用戶登陸,還能夠在禁用登錄時給提示告訴它這麼作的緣由。
修改/etc/nologin.txt,沒有的話就手動新建一個,在裏面添加給被禁止用戶的提示(這種方式的全部用戶的鎖定信息都在這個文件中,在登錄時給與提示)。linux

以下,禁用wangshibo帳號登錄系統:
[root@host-192-168-1-117 ~]# useradd wangshibo
[root@host-192-168-1-117 ~]# echo "123456"|passwd --stdin wangshibo
Changing password for user wangshibo.
passwd: all authentication tokens updated successfully.
[root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo              //或者使用shell類型修改命令"usermod -s /sbin/nologin wangshibo" 
wangshibo:x:500:500::/home/wangshibo:/bin/bash
[root@host-192-168-1-117 ~]# sed -i 's#/home/wangshibo:/bin/bash#/home/wangshibo:/sbin/nologin#g' /etc/passwd
[root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo
wangshibo:x:500:500::/home/wangshibo:/sbin/nologinshell

[root@host-192-168-1-117 ~]# touch /etc/nologin.txt
[root@host-192-168-1-117 ~]# cat /etc/nologin.txt
In order to protect the system security, this type of user is locked!安全

如今嘗試用wangshibo帳號登錄系統,就會被拒絕,並給出提示信息:
[ops@host-192-168-1-117 ~]$ su - wangshibo
Password:
In order to protect the system security, this type of user is locked!
[ops@host-192-168-1-117 ~]$bash

解禁用戶登錄就是把shell改成它原有的就能夠了
[root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo
wangshibo:x:500:500::/home/wangshibo:/sbin/nologin
[root@host-192-168-1-117 ~]# sed -i 's#/home/wangshibo:/sbin/nologin#/home/wangshibo:/bin/bash#g' /etc/passwd
[root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo
wangshibo:x:500:500::/home/wangshibo:/bin/bash運維

[root@host-192-168-1-117 ~]# su - ops
[ops@host-192-168-1-117 ~]$ su - wangshibo
Password:
[wangshibo@host-192-168-1-117 ~]$ssh

---------------------------------------------------------------------------------------
可使用usermod命令修改用戶的shell類型,加-s參數,如
[root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo
wangshibo:x:500:500::/home/wangshibo:/bin/bash
[root@host-192-168-1-117 ~]# usermod wangshibo -s /sbin/nologin
[root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo
wangshibo:x:500:500::/home/wangshibo:/sbin/nologinthis

另外注意下一個小細節:
這一種方法,不管是從root用戶,仍是從其餘用戶,都不能ssh登錄或su切換到鎖定帳號下
---------------------------------------------------------------------------------------spa

2、修改用戶配置文件/etc/shadow,將第二欄設置爲「*」
使用這種方式會致使該用戶的密碼丟失,要再次使用時,需重設密碼。通常不推薦這種方式!
[root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo
wangshibo:x:500:500::/home/wangshibo:/bin/bash
[root@host-192-168-1-117 ~]# cat /etc/shadow|grep wangshibo
wangshibo:$1$0/5NU4y2$OBGISa8yaloVNYVLFCoP3.:17133::::::
[root@host-192-168-1-117 ~]# cat /etc/shadow|grep wangshibo                  # 將第二欄密碼設置爲*
wangshibo:*:17133::::::code

[root@host-192-168-1-117 ~]# su - ops
[ops@host-192-168-1-117 ~]$ su - wangshibo                 #不能登錄系統
Password:
su: incorrect password

解禁用戶登錄,須要重置密碼
[root@host-192-168-1-117 ~]# echo "123456"|passwd --stdin wangshibo
Changing password for user wangshibo.
passwd: all authentication tokens updated successfully.
[root@host-192-168-1-117 ~]# cat /etc/shadow|grep wangshibo
wangshibo:$1$RPfkekf7$QAUGmJ0SCIb64aEvJvNif1:17133::::::
[ops@host-192-168-1-117 ~]$ su - wangshibo
Password:
[wangshibo@host-192-168-1-117 ~]$

3、使用命令passwd     (實驗發現:鎖定後,作了ssh無密碼信任的機器之間登陸不受影響)
passwd -l 用戶          //鎖定帳號,-l:lock
passwd -u 用戶        //解禁用戶,-u:unlock

[root@host-192-168-1-117 ~]# passwd -l wangshibo
Locking password for user wangshibo.
passwd: Success

[ops@host-192-168-1-117 ~]$ su - wangshibo
Password:
su: incorrect password

[root@host-192-168-1-117 ~]# passwd -u wangshibo
Unlocking password for user wangshibo.
passwd: Success

[ops@host-192-168-1-117 ~]$ su - wangshibo
Password:
[wangshibo@host-192-168-1-117 ~]$

4、使用命令usermod
usermod -L 用戶         //鎖定賬號,-L:lock
usermod -U 用戶        //解鎖賬號,-U:unlock

[root@host-192-168-1-117 ~]# usermod -L wangshibo

[ops@host-192-168-1-117 ~]$ su - wangshibo
Password:
su: incorrect password

[root@host-192-168-1-117 ~]# usermod -U wangshibo

[ops@host-192-168-1-117 ~]$ su - wangshibo
Password:
[wangshibo@host-192-168-1-117 ~]$

---------------------------------------------------------------------------------------
這裏有個細節須要注意一下:
第三和第四種方式,即passwd或usermod命令鎖定的用戶:
1)不管從root用戶仍是其餘普通用戶,都不能ssh登錄鎖定用戶下
2)能夠從root用戶su切換到鎖定用戶下,可是用其餘普通用戶不能su切換到鎖定用戶下
---------------------------------------------------------------------------------------

注意:經過usermodpasswd鎖定帳號,不會對作了ssh互信的機器形成登陸影響;但要是在sshd_config裏作了DenyUsers的限制,則就完全禁止了ssh動做,互信也受影響。

5、禁止全部的用戶登陸(手動建立/etc/nologin文件)
若是不想讓除root用戶以外的其餘全部用戶登陸系統(好比在系統維護狀況下),若是按照上面的幾種方式,就須要一個一個地去禁止用戶登陸,這就是一種很傻X的工做方式,效率也很低!

下面介紹一種簡潔有效的設置方式:
只須要在/etc目錄下創建一個nologin文檔,那麼Linux上的全部用戶(除了root之外)都沒法登陸!!
[root@host-192-168-1-117 ~]# touch /etc/nologin

在/etc/nologin(注意:這可不是第一種方式中的nologin.txt)文件裏面能夠自定義一些內容,告訴用戶爲什麼沒法登陸。
[root@host-192-168-1-117 ~]# cat /etc/nologin
抱歉,系統維護中,暫時禁止登錄!

這樣,就會發現除root以外的其餘用戶通通沒法登錄系統了。
[root@linux-node2 ~]# ssh root@192.168.1.117
抱歉,系統維護中,暫時禁止登錄!
[root@host-192-168-1-117 ~]#

[root@linux-node2 ~]# ssh wangshibo@192.168.1.117
wangshibo@192.168.1.117's password:
抱歉,系統維護中,暫時禁止登錄!
Connection closed by 192.168.1.117
[root@linux-node2 ~]# ssh ops@192.168.1.117
ops@192.168.1.117's password:
抱歉,系統維護中,暫時禁止登錄!
Connection closed by 192.168.1.117

注意一點:
這種方法設置後,只是禁止了從外部ssh登錄本機時有效!可是在本機上,不管是從root用戶仍是其餘普通用戶使用su命令切換到鎖定用戶下都不受影響。
[root@host-192-168-1-117 ~]# su - ops
[ops@host-192-168-1-117 ~]$ su - wangshibo
Password:
[wangshibo@host-192-168-1-117 ~]$

解禁賬號也簡單,直接將/etc/nologin刪除就好了!
[root@host-192-168-1-117 ~]# rm -f /etc/nologin
[root@host-192-168-1-117 ~]# ll /etc/nologin
ls: cannot access /etc/nologin: No such file or directory

[root@linux-node2 ~]# ssh wangshibo@192.168.1.117
wangshibo@192.168.1.117's password:
[wangshibo@host-192-168-1-117 ~]$

以上幾種鎖定帳號的設置完成後,在遠程使用ssh命令都將沒法登錄系統!

相關文章
相關標籤/搜索