從2個命令簡單聊聊CentOS賬戶鎖定原理
實驗環境
#uname -a
Linux a69.hunk.edu 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
#cat /etc/redhat-release
CentOS release 6.9 (Final)
passwd命令
-l, --lock lock the password for the named account (root only)
-u, --unlock unlock the password for the named account (root only)
usermod命令
-L, --lock lock the user account
-U, --unlock unlock the user account
創建用戶user1和user2
#useradd user1
#useradd user2
修改2個用戶的密碼
#echo 123456|passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
#echo 123456|passwd --stdin user2
Changing password for user user2.
passwd: all authentication tokens updated successfully.
分別登錄測試,正常。
查看user1和user2在/etc/shadow下的密碼欄位,均顯示正常。
將最後2欄導出到文件以便後續對比old1.txt
#tail -2 /etc/shadow > /app/old1.txt
實驗一
使用passwd -l 鎖定與解鎖user1
1.使用passwd鎖定user1
#passwd -l user1
Locking password for user user1.
passwd: Success
2.將變化後的數據導出以新文件new1.txt
#tail -2 /etc/shadow > new1.txt
3.對比,新文件增加了2個字節,
使用文本對比工具,發現左邊的new1.txt在密碼欄多出了2個!(嘆號)
4.無法登陸
5.使用passwd解鎖user1
#passwd -u user1
Unlocking password for user user1.
passwd: Success
6.將變化後的數據導出以新文件renew.txt
#tail -2 /etc/shadow > renew.txt
左邊為renew.txt,比右邊的new1.txt少了2個!(嘆號)
7.系統正常登錄
實驗二
使用passwd -l 鎖定與解鎖user2
1.使用usermod鎖定user2
#usermod -L user2
2.將變化後的數據導出以新文件new2.txt
#tail -2 /etc/shadow > new2.txt
3.對比,新文件增加了1個字節
使用文本對比工具,發現左邊的new2.txt在密碼欄多出了1個!(嘆號)
4.無法登陸
5.使用usermod解鎖user2
#usermod -U user2
6.將變化後的數據導出以新文件renew2.txt
#tail -2 /etc/shadow > renew2.txt
左邊為renew2.txt,比右邊的new2.txt少了1個!(嘆號)
7.系統正常登錄
實驗三
使用passwd 鎖定user1,再使用usermod 解鎖user1
1.使用passwd鎖定user1
#passwd -l user1
2.無法登錄
3.使用usermod解鎖user1
#usermod -U user1
4..將變化後的數據導出以新文件pL2mU.txt
#tail -2 /etc/shadow > pL2mU.txt
5.對比,新文件減少了2個字節
使用文本對比工具,發現左邊的pL2mU.txt在密碼欄減少了2個!(嘆號)
6.系統正常登錄
實驗四
使用usermod 鎖定user2,再使用passwd 解鎖user2
1.使用usermod鎖定user2
#usermod -L user2
2.無法登錄
3.因為部分對比上面的實驗中已經有數據了,這裏就不再重復對比了。
會在密碼欄減少了2個!(嘆號)
4.使用passwd解鎖user2
#passwd -u user2
Unlocking password for user user2.
passwd: Success
5.正常登錄
總結:
passwd -l與usermod -L沒有什麽區別,作用都是讓用戶賬戶密碼暫時失效(也就是鎖定)。
鎖定的原理就是在/etc/shadow第二欄(代表用戶密碼)最前面加上2個嘆號(!),讓密碼暫時失效。
因為linux帳戶的密碼是經過特殊加密的,每一種加密方式產生的密碼長度和格式是相同的,加上嘆號使之暫時失效。
使用相應的passwd -u 或usermod -U進行解鎖
較舊的版本,usermod -L 一次只能去除一個!(嘆號)。在新版本已經修正此不規範了。
謝謝閱讀。
本文出自 “金色之謎” 博客,請務必保留此出處http://191226139.blog.51cto.com/211244/1982625
從2個命令簡單聊聊CentOS賬戶鎖定原理