如何強制用戶在下次登錄 Linux 時更改密碼

如何強制用戶在下次登錄 Linux 時更改密碼

編譯自: https://www.2daygeek.com/how-to-force-user-to-change-password-on-next-login-in-linux/

作者: Prakash Subramanian

當你使用默認密碼創建用戶時,你必須強制用戶在下一次登錄時更改密碼。

當你在一個組織中工作時,此選項是強制性的。因為老員工可能知道默認密碼,他們可能會也可能不會嘗試不當行為。

這是安全投訴之一,所以,確保你必須以正確的方式處理此事而無任何失誤。即使是你的團隊成員也要一樣做。

大多數用戶都很懶,除非你強迫他們更改密碼,否則他們不會這樣做。所以要做這個實踐。

出於安全原因,你需要經常更改密碼,或者至少每個月更換一次。

確保你使用的是難以猜測的密碼(大小寫字母,數字和特殊字符的組合)。它至少應該為 10-15 個字符。

我們運行了一個 shell 腳本來在 Linux 服務器中創建一個用戶賬戶,它會自動為用戶附加一個密碼,密碼是實際用戶名和少量數字的組合。

我們可以通過使用以下兩種方法來實現這一點:

  • passwd 命令
  • chage 命令

建議閱讀:

  • 如何在 Linux 上檢查用戶所屬的組
  • 如何在 Linux 上檢查創建用戶的日期
  • 如何在 Linux 中重置/更改用戶密碼
  • 如何使用 passwd 命令管理密碼過期和老化

方法 1:使用 passwd 命令

passwd 的意思是“密碼”。它用於更新用戶的身份驗證令牌。passwd 命令/實用程序用於設置、修改或更改用戶的密碼。

普通的用戶只能更改自己的賬戶,但超級用戶可以更改任何賬戶的密碼。

此外,我們還可以使用其他選項,允許用戶執行其他活動,例如刪除用戶密碼、鎖定或解鎖用戶賬戶、設置用戶賬戶的密碼過期時間等。

在 Linux 中這可以通過調用 Linux-PAM 和 Libuser API 執行。

在 Linux 中創建用戶時,用戶詳細信息將存儲在 /etc/passwd 文件中。passwd 文件將每個用戶的詳細信息保存為帶有七個字段的單行。

此外,在 Linux 系統中創建新用戶時,將更新以下四個文件。

  • /etc/passwd: 用戶詳細信息將在此文件中更新。
  • /etc/shadow: 用戶密碼信息將在此文件中更新。
  • /etc/group: 新用戶的組詳細信息將在此文件中更新。
  • /etc/gshadow: 新用戶的組密碼信息將在此文件中更新。

如何使用 passwd 命令執行此操作

我們可以使用 passwd 命令並添加 -e 選項來執行此操作。

為了測試這一點,讓我們創建一個新用戶賬戶,看看它是如何工作的。

# useradd -c "2g Admin - Magesh M" magesh && passwd magesh

Changing password for user magesh.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

使用戶賬戶的密碼失效,那麼在下次登錄嘗試期間,用戶將被迫更改密碼。

# passwd -e magesh

Expiring password for user magesh.

passwd: Success

當我第一次嘗試使用此用戶登錄系統時,它要求我設置一個新密碼。

login as: magesh

[email protected]'s password:

You are required to change your password immediately (root enforced)

WARNING: Your password has expired.

You must change your password now and login again!

Changing password for user magesh.

Changing password for magesh.

(current) UNIX password:

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

Connection to localhost closed.

方法 2:使用 chage 命令

chage 意即“改變時間”。它會更改用戶密碼過期信息。

chage 命令會改變上次密碼更改日期之後需要修改密碼的天數。系統使用此信息來確定用戶何時必須更改他/她的密碼。

它允許用戶執行其他活動,例如設置帳戶到期日期,到期後設置密碼失效,顯示帳戶過期信息,設置密碼更改前的最小和最大天數以及設置到期警告天數。

如何使用 chage 命令執行此操作

讓我們在 chage 命令的幫助下,通過添加 -d 選項執行此操作。

為了測試這一點,讓我們創建一個新用戶帳戶,看看它是如何工作的。我們將創建一個名為 thanu 的用戶帳戶。

# useradd -c "2g Editor - Thanisha M" thanu && passwd thanu

Changing password for user thanu.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

要實現這一點,請使用 chage 命令將用戶的上次密碼更改日期設置為 0。

# chage -d 0 thanu

# chage -l thanu

Last password change : Jul 18, 2018

Password expires : never

Password inactive : never

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7

當我第一次嘗試使用此用戶登錄系統時,它要求我設置一個新密碼。

login as: thanu

[email protected]'s password:

You are required to change your password immediately (root enforced)

WARNING: Your password has expired.

You must change your password now and login again!

Changing password for user thanu.

Changing password for thanu.

(current) UNIX password:

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

Connection to localhost closed.


via: https://www.2daygeek.com/how-to-force-user-to-change-password-on-next-login-in-linux/

作者: Prakash Subramanian 選題: lujun9972 譯者: MjSeven 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


分享到:


相關文章: