linux中給使用者加密碼的命令是什麼

2022-07-02 06:00:33

linux中給使用者加密碼的命令是「passwd」。passwd命令是用來更改使用者密碼的,語法為「passwd [選項] 使用者名稱」;當只省略「選項」引數時可以設定指定使用者的密碼,當省略「選項」和「使用者名稱」數時可以設定當前使用者的密碼。passwd命令還可配合「-n 天數」選項引數,設定使用者修改密碼後,多長時間不能再次修改密碼;配合「-x 天數」選項引數,設定使用者的密碼有效期。

本教學操作環境:linux7.3系統、Dell G3電腦。

使用useradd命令建立新使用者時,並沒有設定使用者密碼,因此還無法用來登陸系統。那麼怎麼給使用者加密碼呢?

在linux中,可以使用passwd命令給使用者設定密碼。

passwd 命令的基本格式如下:

passwd [選項] 使用者名稱
  • 如果只省略「選項」引數時可以設定指定使用者的密碼

  • 如果省略「選項」和「使用者名稱」數時可以設定當前使用者的密碼

例如,我們使用 root 賬戶修改 lamp 普通使用者的密碼,可以使用如下命令:

[root@localhost ~]#passwd lamp
Changing password for user lamp.
New password: <==直接輸入新的口令,但螢幕不會有任何反應
BAD PASSWORD: it is WAY too short <==口令太簡單或過短的錯誤!這裡只是警告資訊,輸入的密碼依舊能用
Retype new password:  <==再次驗證輸入的密碼,再輸入一次即可
passwd: all authentication tokens updated successfully.  <==提示修改密碼成功

例如,我們登陸 lamp 使用者,並使用 passwd 命令修改 lamp 的登陸密碼,執行過程如下:

[root@localhost ~]#passwd
#passwd直接回車代表修改當前使用者的密碼
Changing password for user vbird2.
Changing password for vbird2
(current) UNIX password: <==這裡輸入『原有的舊口令』
New password: <==這裡輸入新口令
BAD PASSWORD: it is WAY too short <==口令檢驗不通過,請再想個新口令
New password: <==這裡再想個來輸入吧
Retype new password: <==通過口令驗證!所以重複這個口令的輸入
passwd: all authentication tokens updated successfully. <==成功修改使用者密碼

注意,普通使用者只能使用 passwd 命令修改自己的密碼,而不能修改其他使用者的密碼。

可以看到,與使用 root 賬戶修改普通使用者的密碼不同,普通使用者修改自己的密碼需要先輸入自己的舊密碼,只有舊密碼輸入正確才能輸入新密碼。不僅如此,此種修改方式對密碼的複雜度有嚴格的要求,新密碼太短、太簡單,都會被系統檢測出來並禁止使用者使用。

passwd 命令還提供了一些選項,用於實現不同功能:

  • -S:查詢使用者密碼的狀態,也就是 /etc/shadow 檔案中此使用者密碼的內容。僅 root 使用者可用;

  • -l:暫時鎖定使用者,該選項會在 /etc/shadow 檔案中指定使用者的加密密碼串前新增 "!",使密碼失效。僅 root 使用者可用;

  • -u:解鎖使用者,和 -l 選項相對應,也是隻能 root 使用者使用;

  • --stdin:可以將通過管道符輸出的資料作為使用者的密碼。主要在批次新增使用者時使用;

  • -n 天數:設定該使用者修改密碼後,多長時間不能再次修改密碼,也就是修改 /etc/shadow 檔案中各行密碼的第 4 個欄位;

  • -x 天數:設定該使用者的密碼有效期,對應 /etc/shadow 檔案中各行密碼的第 5 個欄位;

  • -w 天數:設定使用者密碼過期前的警告天數,對於 /etc/shadow 檔案中各行密碼的第 6 個欄位;

  • -i 日期:設定使用者密碼失效日期,對應 /etc/shadow 檔案中各行密碼的第 7 個欄位。

【例 1】

#檢視使用者密碼的狀態

[root@localhost ~]# passwd -S lamp
lamp PS 2013-01-06 0 99999 7 -1 (Password set, SHA512 crypt.)
#上面這行程式碼的意思依次是:使用者名稱 密碼 設定時間(2013*01-06) 密碼修改間隔時間(0) 密碼有效期(99999) 警告時間(7) 密碼不失效(-1),密碼已使用

"-S"選項會顯示出密碼狀態,這裡的密碼修改間隔時間、密碼有效期、警告時間、密碼寬限時間其實分別是 /etc/shadow 檔案的第四、五、六、七個欄位的內容。 當然,passwd 命令是可以通過命令選項修改這幾個欄位的值的,例如:

#修改 lamp的密碼,使其具有 60 天變更、10 天密碼失效
[root@localhost ~]# passwd -x 60 -i 10 lamp
[root@localhost ~]# passwd -S lamp
lamp PS 2013-01-06 0 60 7 10 (Password set, SHA512 crypt.)

但我個人認為,還是直接修改 /etc/shadow 檔案簡單一些。

這裡顯示 SHA512 為密碼加密方式,CentOS 6.3 加密方式已經從 MD5 加密更新到 SHA512 加密,我們不用瞭解具體的加密演演算法,只要知道這種加密演演算法更加可靠和先進就足夠了。

【例 2】

#鎖定 lamp 使用者
[root@localhost ~]# passwd -I lamp
Locking password for user lamp.
passwd:Successg
#用"-S"選項査看狀態,很清楚地提示密碼已被鎖定
[root@localhost ~]# passwd -S lamp
lamp LK 2013-01-06 0 99999 7 -1 (Password locked.)
[root@localhost ~]# grep "lamp" /etc/shadow
lamp:!! $6$ZTq7o/9o $lj07iZ0bzW.D1zBa9CsY43d04onskUCzjwiFMNt8PX4GXJoHX9zA1S C9.i Yzh9LZA4fEM2lg92hM9w/p6NS50.:15711:0:99999:7:::
#可以看到,鎖定其實就是在加密密碼之前加入了"!!",讓密碼失效而已

暫時鎖定 lamp 使用者後,此使用者就不能登入系統了。那麼,怎麼解鎖呢?也一樣簡單,使用如下命令即可:

#解鎖 lamp 使用者
[root@localhost ~]# passwd -u lamp
Unlocking password for user lamp.
passwd:Success
[root@localhost ~]# passwd -S lamp
lamp PS 2013-01-06 0 99999 7 -1 (Password set, SHA512 crypt.)
#可以看到,鎖定狀態消失
[root@localhost ~]# grep "lamp" /etc/shadow
lamp: $6$ZTq7cV9o $lj07iZ0bzW.D1zBa9CsY43d04onskUCzjwiFMNt8PX4GXJoHX9zA1S C9.iYz h9LZA4fEM2lg92hM9w/p6NS50.:15711:0:99999:7:::
#密碼前面的 "!!" 刪除了

相關推薦:《Linux視訊教學

以上就是linux中給使用者加密碼的命令是什麼的詳細內容,更多請關注TW511.COM其它相關文章!