命令格式
我們在上一小節中介紹了新增使用者的命令,但是新新增的使用者如果不沒定密碼是不能登入系統的,那麼我們來學習一下密碼設定命令passwd。
[root@localhost ~]
#passwd [選項] 使用者名稱
選項
說明-s
查詢使用者密碼狀態,也就是/etc/shadow檔案中的內容。僅root使用者可用
-l暫時鎖定使用者,僅 root 使用者可用
-u解鎖使用者,僅 root 使用者可用
–stdin
可以將通過管道符輸出的資料作為使用者的密碼,主要在批量新增使用者時使用
[root@localhost ~]
#passwd
#passwd直接回車代表修改當前使用者的密碼
root使用者修改密碼
下面舉幾個例子,我們給新使用者lamp設定密碼,讓lamp使用者可以登入系統。
[root@localhost ~]
# passwd lamp
changing password for user lamp. ←更改使用者lamp的密碼。
new password: ←新的密碼
bad password: the password is shorter than 8 characters ←無效的密碼,密碼需要對於8個字元;
retype new password:
passwd: all authentication tokens updated successfully. ←所有的身份驗證令牌已經更新成功。
注意,要想給其他使用者設定密碼,只有兩種使用者可行:一種是 root 使用者;另一種是root通過sudo命令賦予許可權的普通使用者。也就是說,普通使用者只能修改自己的密碼,而不能設定其他使用者的密碼。
還要注意一件事,設定使用者密碼時一定要遵守「複雜性、易記憶性、時效性」的密碼規範。簡單來講就是密碼要大於8位,包含大寫字母、小寫字母、數字和特殊符號中的3種,並且容易記憶和定期更換。但是root使用者在設定密碼時卻可以不遵守這些規則,比如我剛剛給lamp使用者設定的密碼是「123」,系統雖然會提示密碼過短和過於簡單,但是依然可以設定成功。不過普通使用者在修改自己的密碼時,一定要遵守密碼規範。當然,在生產伺服器上,就算是root身份,在設定密碼時也要嚴格遵守密碼規範,因為只有好的密碼規範才是伺服器安全的基礎。
普通使用者修改密碼
那麼我們看看普通使用者lamp是如何修改密碼的。
[lamp@localhost ~]$ whoami
lamp
#先看看我的身份
[lamp@localhost ~]$ passwd lamp1
passwd: only root can specify a user name.
#只有跟使用者才能指定使用者名稱
[lamp@localhost ~]$ passwd lamp
passwd: only root can specify a user name.
#只有跟使用者才能指定使用者名稱
[lamp@localhost ~]$ passwd
changing password for user lamp.
changing password for lamp.
(current) unix password:
#put使用者需要先輸入自己的密碼進行驗證才能修改
new password:
retype new password:
passwd: all authentication tokens updated successfully.
大家發現了嗎?對普通使用者來講,密碼設定就要嚴格得多了。首先,只能使用「passwd」來修改自己的密碼,而不能使用「passwd 使用者名稱」的方式。不過,如果你是root使用者,則建議用「passwd 使用者名稱」的方式來修改密碼,因為這樣不容易搞混。其次,在修改密碼之前,需要先輸入舊密碼。
檢視使用者密碼狀態
[root@localhost ~]
# passwd -s lamp
lamp ps 2020-03-18 0
99999
7 -1 (password set, sha512 crypt.)
#上面這行**的意思是:
#使用者名稱 密碼設定時間(2020-03-18) 密碼修改間隔時間(0) 密碼有效期(99999) 警告時間(7) 密碼不失效(-1)
「-s」選項會顯示出密碼狀態,這裡的密碼修改間隔時間、密碼有效期、警告時間、密碼寬限時間其實分別是/etc/shadow檔案的第
四、五、六、七個欄位的內容。當然,passwd 命令是可以通過命令選項修改這幾個欄位的值的,不過我個人認為還是直接修改/etc/shadow檔案簡單一些。再次提醒一下,centos 6.3的加密方式已經從md5加密更新到sha512加密,我們不用了解具體的加密演算法,只要知道這種加密演算法更加可靠和先進就足夠了。
鎖定和解鎖使用者
使用passwd命令可以很方便地鎖定和解鎖某個使用者,我們來試試。
[root@localhost ~]
# passwd -l lamp
locking password for user lamp.
passwd: success
#鎖定使用者
[root@localhost ~]
# passwd -s lamp
lamp lk 2020-03-18 0
99999
7 -1 (password locked.)
#用「-s」選項檢視狀態,很清楚的提示密碼已被鎖定
[root@localhost ~]
# grep "lamp" /etc/shadow
lamp:!!$6
$p8pgsl7s
$4vlshi5mlmnqwul8hccq05wcyn3ahjwirto4ghhza4gysqh.7oebjssh5po5kornu.li**kxnv8k0oz9fn0um/:18339:0:99999:7:::
#其實鎖定就是在加密密碼之前加入了「!!」,讓密碼失效而已
可以非常簡單的實現使用者的暫時鎖定,這時lamp使用者就不能登入系統了。那麼解鎖呢?也一樣簡單,我們來試試。
[root@localhost ~]
# passwd -u lamp
unlocking password for user lamp.
passwd: success
#解鎖使用者
[root@localhost ~]
# passwd -s lamp
lamp ps 2020-03-18 0
99999
7 -1 (password set, sha512 crypt.)
#鎖定狀態消失
[root@localhost ~]
# grep "lamp" /etc/shadow
lamp:$6
$p8pgsl7s
$4vlshi5mlmnqwul8hccq05wcyn3ahjwirto4ghhza4gysqh.7oebjssh5po5kornu.li**kxnv8k0oz9fn0um/:18339:0:99999:7:::
#密碼前面的"!!"刪除了
使用字串作為使用者的密碼
這種做法主要是在批量新增使用者時,給所有的使用者設定個初始密碼。但是需要注意的是,這樣設定這樣設定的密碼會把密碼明文儲存在歷史命令中,會有安全隱患。所以,如果使用了這種方式修改密碼,那麼應該記住兩件事情:第一,手工清除歷史命令;第二,強制這些新新增的使用者在第一次登入時必須修改密碼(具體方法參考「chage」命令)。
[root@localhost ~]
# echo "123" | passwd --stdin lamp
changing password for user lamp.
passwd: all authentication tokens updated successfully.
命令很簡單,呼叫管道符,讓echo的輸出作為passwd命令的輸入,就可以把lamp 使用者的密碼設定為「123」了。 passwd命令的有趣使用
通過上面列印在顯示資訊我們知道demo密碼已經設定。passwd d demo removing password for user demo.passwd success passwd s demo demo np 2016 09 30 0 99999 7 1 empty password.當乙個...
passwd命令使用說明
1 命令概述 passwd命令用於設定使用者的認證資訊,包括使用者密碼 賬戶鎖定 密碼失效等。直接執行passwd命令修改當前的使用者密碼,對其他使用者的密碼操作需要管理員許可權。etc shadow 使用者密碼檔案。2 命令語法 passwd 選項 使用者名稱 3 命令選項 4 命令示例 root...
passwd命令使用說明
1 命令概述 passwd命令修改賬戶的登陸密碼,以及對使用者相關操作許可權。2 命令語法 password 選項 使用者名稱 3 命令選項 k 保持身份驗證令牌不過期 d 刪除已命名帳號的密碼 超級管理員使用 刪除密碼後登陸無需密碼。l 鎖定指名帳戶的密碼 僅限 root 使用者 鎖定後該使用者不...