linux中的鎖定用戶和鎖定密碼
在我們運維工作中,會經常要求一些用戶不允許登陸系統,以加固系統安全。今天這里介紹下鎖定賬號登陸的幾種方法:
一、最常用方式,修改用戶的shell類型為/sbin/nologin (推薦使用)
這種方式會更加人性化一點,因為不僅可以禁止用戶登錄,還可以在禁用登陸時給提示告訴它這么做的原因。
修改/etc/nologin.txt,沒有的話就手動新建一個,在里面添加給被禁止用戶的提示(這種方式的所有用戶的鎖定信息都在這個文件中,在登陸時給與提示)。
如下,禁用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
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/nologin
[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 ~]$
解禁用戶登陸就是把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 ~]$
---------------------------------------------------------------------------------------
可以使用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/nologin
另外注意下一個小細節:
這一種方法,無論是從root用戶,還是從其他用戶,都不能ssh登陸或su切換到鎖定賬號下
---------------------------------------------------------------------------------------
二、修改用戶配置文件/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::::::
[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 ~]$
三、使用命令passwd
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 ~]$
四、使用命令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切換到鎖定用戶下
---------------------------------------------------------------------------------------
五、禁止所有的用戶登錄(手動創建/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 ~]$
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解