linux下passwd命令設定修改使用者密碼

2puT發表於2016-07-18
1、passwd 簡單說明;

我們已經學會如何新增使用者了,所以我們還要學習設定或修改使用者的密碼;passwd命令的用法也很多,我們只選如下的幾個引數加以說明;想了解更多,請參考man passwd或passwd --help ;


passwd [OPTION...]

passwd 作為普通使用者和超級許可權使用者都可以執行,但作為普通使用者只能更改自己的使用者密碼,但前提是沒有被root使用者鎖定;如果root使用者執行passwd ,可以設定或修改任何使用者的密碼;

passwd 命令後面不接任何引數或使用者名稱,則表示修改當前使用者的密碼;請看下面的例子;
[root@localhost ~]# passwd   注:沒有加任何使用者,我是用root使用者來執行的passwd 表示修改root使用者的密碼;下面也有提示;
Changing password for user root.
New UNIX password: 注:請輸入新密碼;
Retype new UNIX password: 注:驗證新密碼;
passwd: all authentication tokens updated successfully. 注:修改root密碼成功;

如果是普通使用者執行passwd 只能修改自己的密碼;

如果新建使用者後,要為新使用者建立密碼,則用 passwd 使用者名稱 ,注意要以root使用者的許可權來建立;

[root@localhost ~]# passwd beinan 注:更改或建立beinan使用者的密碼;
Changing password for user beinan.
New UNIX password: 注:請輸入新密碼;
Retype new UNIX password: 注:再輸入一次;
passwd: all authentication tokens updated successfully. 注:成功;

普通使用者如果想更改自己的密碼,直接執行passwd即可;比如當前操作的使用者是beinan;

[beinan@localhost ~]$ passwd
Changing password for user beinan. 注:更改beinan使用者的密碼;
(current) UNIX password: 注:請輸入當前密碼;
New UNIX password: 注:請輸入新密碼;
Retype new UNIX password: 注:確認新密碼;
passwd: all authentication tokens updated successfully. 注:更改成功;


2、passwd 幾個比較重要的引數;

[root@localhost beinan]# passwd --help
Usage: passwd [OPTION...] <accountName>
-k, --keep-tokens       keep non-expired authentication tokens
注:保留即將過期的使用者在期滿後能仍能使用;
-d, --delete            delete the password for the named account (root only)
注:刪除使用者密碼,僅能以root許可權操作;
-l, --lock              lock the named account (root only)
注:鎖住使用者無權更改其密碼,僅能通過root許可權操作;
-u, --unlock            unlock the named account (root only)
注:解除鎖定;
-f, --force             force operation
注:強制操作;僅root許可權才能操作;
-x, --maximum=DAYS      maximum password lifetime (root only) 注:兩次密碼修正的最大天數,後面接數字;僅能root許可權操作;
-n, --minimum=DAYS      minimum password lifetime (root only) 注:兩次密碼修改的最小天數,後面接數字,僅能root許可權操作;
-w, --warning=DAYS      number of days warning users receives before 注:在距多少天提醒使用者修改密碼;僅能root許可權操作;
password expiration (root only)
-i, --inactive=DAYS     number of days after password expiration when an 注:在密碼過期後多少天,使用者被禁掉,僅能以root操作;
account becomes disabled (root only)
-S, --status            report password status on the named account (root   注:查詢使用者的密碼狀態,僅能root使用者操作;
only)
--stdin                 read new tokens from stdin (root only)

比如我們讓某個使用者不能修改密碼,可以用-l 引數來鎖定:

[root@localhost ~]# passwd -l beinan 注:鎖定使用者beinan不能更改密碼;
Locking password for user beinan.
passwd: Success           注:鎖定成功;
[beinan@localhost ~]# su beinan 注:通過su切換到beinan使用者;
[beinan@localhost ~]$ passwd 注:beinan來更改密碼;
Changing password for user beinan.
Changing password for beinan
(current) UNIX password: 注:輸入beinan的當前密碼;
passwd: Authentication token manipulation error 注:失敗,不能更改密碼;


再來一例:

[root@localhost ~]# passwd -d beinan 注:清除beinan使用者密碼;
Removing password for user beinan.
passwd: Success                        注:清除成功;
[root@localhost ~]# passwd -S beinan 注:查詢beinan使用者密碼狀態;
Empty password.                     注:空密碼,也就是沒有密碼;

注意: 當我們清除一個使用者的密碼時,登入時就無需密碼;這一點要加以注意;


3、chage 修改使用者密碼有效期限的命令;

chage 用語法格式:

chage [-l] [-m 最小天數] [-M 最大天數] [-W 警告] [-I 失效日] [-E 過期日] [-d 最後日] 使用者

前面已經說的好多了,這個只是一筆帶過吧,知道有這個命令就行,自己實踐實踐再說,大體和psswd有些引數的用法差不多;

密 碼時效命令-----chage

格式為:chage [<選項>] <使用者名稱>
下面列出了chage命令的選項說明:
-m days: 密碼可更改的最小天數。為零時代表任何時候都可以更改密碼。
-M days: 指定口令有效的最多天數。當該選項指定的天數加上-d選項指定的天數小於當前的日期時,使用者在使用該帳號前就必須改變口令。
-d days: 指定從1970年1月1日起,口令被改變的天數。
-I days: 指定口令過期後,帳號被鎖前不活躍的天數。如果值為0,帳號在口令過期後就不會被鎖。
-E date: 指定帳號被鎖的日期。日期格式YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日後經過的天數。
-W days: 指定口令過期前要警告使用者的天數。
-l: 列出指定使用者當前的口令時效資訊,以確定帳號何時過期。
例如下面的命令要求使用者user1兩天內不能更改口令,並且口令最長的存活期為30天,並且口令過期前5天通知使用者
chage -m 2 -M 30 -W 5 user1
可以使用如下命令檢視使用者user1當前的口令時效資訊:chage -l user1
提示:1)可以使用chage <使用者名稱>進入互動模式修改使用者的口令時效。
2)修改口令實質上就是修改影子口令檔案/etc/shadow中與口令時效相關的欄位值。

相關文章