使用passwd命令修改Linux系統中使用者密碼

2021-10-06 23:01:17 字數 4098 閱讀 2306

命令格式

我們在上一小節中介紹了新增使用者的命令,但是新新增的使用者如果不沒定密碼是不能登入系統的,那麼我們來學習一下密碼設定命令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 使用者 鎖定後該使用者不...