如何查詢Linux系統中密碼為空的所有使用者

大雄45發表於2022-05-18

導讀 最糟糕的密碼不是弱密碼,而是根本沒有密碼。作為系統管理員,您必須確保每個使用者帳戶都有一個強密碼。接下來我將簡要的解釋如何在   中查詢密碼為空的帳戶。

如何查詢Linux系統中密碼為空的所有使用者如何查詢Linux系統中密碼為空的所有使用者

在進入主題之前,讓我們快速回顧一下Shadow檔案及其用途。

Shadow檔案

在 RHEL 系統中,使用者密碼經過雜湊處理並儲存在名為 /etc/shadow 的安全檔案中。Shadow密碼檔案包含使用者帳戶的使用者身份驗證資訊和密碼過期策略(password aging)的詳細資訊。

Shadow檔案歸 root 使用者所有,且只有超級使用者才能讀取。您可以使用以下 驗證Shadow檔案的所有權和許可權:

#  ls  -l /etc/shadow 
---------- 1 root root 618 Apr  7 07:52 /etc/shadow

下面給出了影子檔案中示例行的典型結構:user1:$6$5ps/XV21$EFmQ463GJZnsdF/:19089:0:99999:7:::

您可能已經知道,Shadow檔案有九個欄位,每個欄位間採用冒號分隔。

接下來我們快速瀏覽一下每個欄位。

欄位1(登入名)- 標識了一個登入帳號,同檔案/etc/passwd中的相同。
欄位2(加密後密碼) -包含使用者對應的採用雜湊加密方式加密後的密碼。如果此欄位開頭有一個感嘆號 (!),則表示該使用者帳戶已被鎖定。如果此欄位為空,則該使用者沒有密碼。
欄位3(上次更改)- 此欄位顯示最後一次修改密碼的時間。如果此欄位包含 0,則使用者在下次登入時將被強制更改密碼。
欄位4(最短天數)- 此欄位顯示在允許使用者更改密碼之前必須經過的最短天數(mindays)。您可以使用帶有 -m 選項的 chage  來更改此欄位的值。
欄位5(最大天數)- 顯示使用者密碼過期前密碼有效的最大天數 (maxdays)。如果該欄位為 0,則表示此功能已禁用。可以使用帶有 -M 選項的 chage 命令來更改該欄位的值。
欄位6(警告)- 表示使用者在密碼過期前收到更改密碼警告的天數(警告日)。您可以使用帶有 -W 選項的 chage 命令或帶有 -w 選項的 passwd 命令來更改此值。
欄位7(密碼過期)- 定義使用者能夠使用過期密碼登入的最大允許天數。這可以使用帶有 -I 標誌的 chage 命令或帶有 -i 標誌的 passwd 命令來更改。
欄位8(帳戶到期) - 定義使用者的帳戶將到期且不再可用的天數。您可以使用帶有 -E 選項的 chage 命令更改此欄位的值。
欄位 9(保留)- 該欄位保留供將來使用。

如上所述,加密後的密碼儲存在Shadow檔案中每個條目的第二個欄位中,就在使用者名稱之後。
因此,如果影子檔案中的第二個欄位為空,則使用者沒有密碼。下面,我向您展示一個查詢所有無密碼使用者帳戶的示例。

查詢所有沒有密碼的賬戶

要檢測所有沒有密碼的本地使用者帳戶,只需以 root 使用者身份執行以下命令:

# awk -F: '$2 == "" { print $1, "has empty password!. Please set a strong password ASAP!!" }' /etc/shadow

下面是上述命令的輸出示例:ostechnix has empty password!. Please set a strong password ASAP!!您還可以使用 getent 命令,同時結合 grep 和 cut 命令來識別 Linux 中的無密碼的本地使用者帳戶,其命令如下所示:

# getent shadow | grep -Po '^[^:]*(?=::)'

也可以採用下面的命令:

# getent shadow | grep '^[^:]*::' | cut -d: -f1

以上所有命令將僅列出密碼為空的本地使用者帳戶。如果要同時列出所有密碼為空的帳戶,下面的兩個命令都可以實現該功能:

# getent shadow | grep -Po '^[^:]*(?=:.?:)'
# getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

如何查詢Linux系統中密碼為空的所有使用者如何查詢Linux系統中密碼為空的所有使用者

檢視特定賬戶的密碼狀態

上述命令將列出所有沒有密碼的帳戶。您還可以使用帶有 -S 標誌的 passwd 命令檢查特定使用者帳戶的密碼狀態。

# passwd -S ostechnix

下面是一個上述命令的輸出示例:ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)

passwd命令將指示給定使用者帳戶的密碼狀態。可能的值是:

LK – 該帳戶被鎖定。
NP - 該帳戶沒有密碼。
PS – 該帳戶有一個可用的密碼。
注意:在基於 Debian 的系統中,密碼狀態將分別用L、N、P來標識。

在Linux中設定賬戶密碼

您可以作為無密碼使用者登入,但並不推薦!您必須設定至少包含 8 個字元的強密碼,且密碼中要包括大寫字母、小寫字母、特殊字元和數字。
要在 Linux 中為使用者帳戶設定密碼,請以 root 使用者身份執行passwd 命令,如下所示:作為根使用者:

# passwd ostechnix

使用上述命令時,請將ostechnix 替換為您自己的使用者名稱。現在我們用passwd命令來檢查帳戶的密碼狀態:

# passwd -S ostechnix

輸出示例如下:ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)

如何查詢Linux系統中密碼為空的所有使用者如何查詢Linux系統中密碼為空的所有使用者

在Linux中鎖定賬戶

有時,您想要鎖定一個沒有密碼的賬戶。如果是這樣,首先如上所述找到密碼為空的使用者,以root使用者的身份執行帶有 -l 標誌的 passwd 命令來鎖定賬戶,其命令如下所示:

# passwd -l ostechnix

下面是上述命令的輸出示例:Locking password for user ostechnix.passwd: Success現在我們再來檢查下帳戶的狀態:

# passwd -S ostechnix
在Linux中解鎖賬戶

要在 Linux 中解鎖無密碼使用者,請以root身份執行 passwd 命令或帶有-p的usermod命令,其命令如下:

# passwd ostechnix

輸入兩次密碼以解鎖密碼。
使用 usermod 命令解鎖使用者密碼為空的使用者是不可能的,您可以使用 usermod -p 設定密碼來解鎖使用者的密碼。

# usermod -postechnix
總結 

在本教程中,我們解釋了什麼是shadow檔案以及該檔案在 Linux 中的用途。然後,我們討論了在 Linux 中查詢所有沒有密碼帳戶的各種命令。最後,我們學習瞭如何為使用者設定密碼,以及如何在 Linux 中鎖定和解鎖使用者。

原文來自: https://blog.51cto.com/u_7390037/5285130

本文地址:


導讀 最糟糕的密碼不是弱密碼,而是根本沒有密碼。作為系統管理員,您必須確保每個使用者帳戶都有一個強密碼。接下來我將簡要的解釋如何在   中查詢密碼為空的帳戶。

如何查詢Linux系統中密碼為空的所有使用者如何查詢Linux系統中密碼為空的所有使用者

在進入主題之前,讓我們快速回顧一下Shadow檔案及其用途。

Shadow檔案

在 RHEL 系統中,使用者密碼經過雜湊處理並儲存在名為 /etc/shadow 的安全檔案中。Shadow密碼檔案包含使用者帳戶的使用者身份驗證資訊和密碼過期策略(password aging)的詳細資訊。

Shadow檔案歸 root 使用者所有,且只有超級使用者才能讀取。您可以使用以下 驗證Shadow檔案的所有權和許可權:

#  ls  -l /etc/shadow 
---------- 1 root root 618 Apr  7 07:52 /etc/shadow

下面給出了影子檔案中示例行的典型結構:user1:$6$5ps/XV21$EFmQ463GJZnsdF/:19089:0:99999:7:::

您可能已經知道,Shadow檔案有九個欄位,每個欄位間採用冒號分隔。

接下來我們快速瀏覽一下每個欄位。

欄位1(登入名)- 標識了一個登入帳號,同檔案/etc/passwd中的相同。
欄位2(加密後密碼) -包含使用者對應的採用雜湊加密方式加密後的密碼。如果此欄位開頭有一個感嘆號 (!),則表示該使用者帳戶已被鎖定。如果此欄位為空,則該使用者沒有密碼。
欄位3(上次更改)- 此欄位顯示最後一次修改密碼的時間。如果此欄位包含 0,則使用者在下次登入時將被強制更改密碼。
欄位4(最短天數)- 此欄位顯示在允許使用者更改密碼之前必須經過的最短天數(mindays)。您可以使用帶有 -m 選項的 chage  來更改此欄位的值。
欄位5(最大天數)- 顯示使用者密碼過期前密碼有效的最大天數 (maxdays)。如果該欄位為 0,則表示此功能已禁用。可以使用帶有 -M 選項的 chage 命令來更改該欄位的值。
欄位6(警告)- 表示使用者在密碼過期前收到更改密碼警告的天數(警告日)。您可以使用帶有 -W 選項的 chage 命令或帶有 -w 選項的 passwd 命令來更改此值。
欄位7(密碼過期)- 定義使用者能夠使用過期密碼登入的最大允許天數。這可以使用帶有 -I 標誌的 chage 命令或帶有 -i 標誌的 passwd 命令來更改。
欄位8(帳戶到期) - 定義使用者的帳戶將到期且不再可用的天數。您可以使用帶有 -E 選項的 chage 命令更改此欄位的值。
欄位 9(保留)- 該欄位保留供將來使用。

如上所述,加密後的密碼儲存在Shadow檔案中每個條目的第二個欄位中,就在使用者名稱之後。
因此,如果影子檔案中的第二個欄位為空,則使用者沒有密碼。下面,我向您展示一個查詢所有無密碼使用者帳戶的示例。

查詢所有沒有密碼的賬戶

要檢測所有沒有密碼的本地使用者帳戶,只需以 root 使用者身份執行以下命令:

# awk -F: '$2 == "" { print $1, "has empty password!. Please set a strong password ASAP!!" }' /etc/shadow

下面是上述命令的輸出示例:ostechnix has empty password!. Please set a strong password ASAP!!您還可以使用 getent 命令,同時結合 grep 和 cut 命令來識別 Linux 中的無密碼的本地使用者帳戶,其命令如下所示:

# getent shadow | grep -Po '^[^:]*(?=::)'

也可以採用下面的命令:

# getent shadow | grep '^[^:]*::' | cut -d: -f1

以上所有命令將僅列出密碼為空的本地使用者帳戶。如果要同時列出所有密碼為空的帳戶,下面的兩個命令都可以實現該功能:

# getent shadow | grep -Po '^[^:]*(?=:.?:)'
# getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

如何查詢Linux系統中密碼為空的所有使用者如何查詢Linux系統中密碼為空的所有使用者

檢視特定賬戶的密碼狀態

上述命令將列出所有沒有密碼的帳戶。您還可以使用帶有 -S 標誌的 passwd 命令檢查特定使用者帳戶的密碼狀態。

# passwd -S ostechnix

下面是一個上述命令的輸出示例:ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)

passwd命令將指示給定使用者帳戶的密碼狀態。可能的值是:

LK – 該帳戶被鎖定。
NP - 該帳戶沒有密碼。
PS – 該帳戶有一個可用的密碼。
注意:在基於 Debian 的系統中,密碼狀態將分別用L、N、P來標識。

在Linux中設定賬戶密碼

您可以作為無密碼使用者登入,但並不推薦!您必須設定至少包含 8 個字元的強密碼,且密碼中要包括大寫字母、小寫字母、特殊字元和數字。
要在 Linux 中為使用者帳戶設定密碼,請以 root 使用者身份執行passwd 命令,如下所示:作為根使用者:

# passwd ostechnix

使用上述命令時,請將ostechnix 替換為您自己的使用者名稱。現在我們用passwd命令來檢查帳戶的密碼狀態:

# passwd -S ostechnix

輸出示例如下:ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)

如何查詢Linux系統中密碼為空的所有使用者如何查詢Linux系統中密碼為空的所有使用者

在Linux中鎖定賬戶

有時,您想要鎖定一個沒有密碼的賬戶。如果是這樣,首先如上所述找到密碼為空的使用者,以root使用者的身份執行帶有 -l 標誌的 passwd 命令來鎖定賬戶,其命令如下所示:

# passwd -l ostechnix

下面是上述命令的輸出示例:Locking password for user ostechnix.passwd: Success現在我們再來檢查下帳戶的狀態:

# passwd -S ostechnix
在Linux中解鎖賬戶

要在 Linux 中解鎖無密碼使用者,請以root身份執行 passwd 命令或帶有-p的usermod命令,其命令如下:

# passwd ostechnix

輸入兩次密碼以解鎖密碼。
使用 usermod 命令解鎖使用者密碼為空的使用者是不可能的,您可以使用 usermod -p 設定密碼來解鎖使用者的密碼。

# usermod -p
總結 

在本教程中,我們解釋了什麼是shadow檔案以及該檔案在 Linux 中的用途。然後,我們討論了在 Linux 中查詢所有沒有密碼帳戶的各種命令。最後,我們學習瞭如何為使用者設定密碼,以及如何在 Linux 中鎖定和解鎖使用者。

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2895027/,如需轉載,請註明出處,否則將追究法律責任。

相關文章