如何查詢Linux系統中密碼為空的所有使用者
導讀 | 最糟糕的密碼不是弱密碼,而是根本沒有密碼。作為系統管理員,您必須確保每個使用者帳戶都有一個強密碼。接下來我將簡要的解釋如何在 中查詢密碼為空的帳戶。 |
在進入主題之前,讓我們快速回顧一下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
上述命令將列出所有沒有密碼的帳戶。您還可以使用帶有 -S 標誌的 passwd 命令檢查特定使用者帳戶的密碼狀態。
# passwd -S ostechnix
下面是一個上述命令的輸出示例:ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)
passwd命令將指示給定使用者帳戶的密碼狀態。可能的值是:
LK – 該帳戶被鎖定。
NP - 該帳戶沒有密碼。
PS – 該帳戶有一個可用的密碼。
注意:在基於 Debian 的系統中,密碼狀態將分別用L、N、P來標識。
您可以作為無密碼使用者登入,但並不推薦!您必須設定至少包含 8 個字元的強密碼,且密碼中要包括大寫字母、小寫字母、特殊字元和數字。
要在 Linux 中為使用者帳戶設定密碼,請以 root 使用者身份執行passwd 命令,如下所示:作為根使用者:
# passwd ostechnix
使用上述命令時,請將ostechnix 替換為您自己的使用者名稱。現在我們用passwd命令來檢查帳戶的密碼狀態:
# passwd -S ostechnix
輸出示例如下:ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)
有時,您想要鎖定一個沒有密碼的賬戶。如果是這樣,首先如上所述找到密碼為空的使用者,以root使用者的身份執行帶有 -l 標誌的 passwd 命令來鎖定賬戶,其命令如下所示:
# passwd -l ostechnix
下面是上述命令的輸出示例:Locking password for user ostechnix.passwd: Success現在我們再來檢查下帳戶的狀態:
# passwd -S ostechnix
要在 Linux 中解鎖無密碼使用者,請以root身份執行 passwd 命令或帶有-p的usermod命令,其命令如下:
# passwd ostechnix
輸入兩次密碼以解鎖密碼。
使用 usermod 命令解鎖使用者密碼為空的使用者是不可能的,您可以使用 usermod -p 設定密碼來解鎖使用者的密碼。
# usermod -postechnix
在本教程中,我們解釋了什麼是shadow檔案以及該檔案在 Linux 中的用途。然後,我們討論了在 Linux 中查詢所有沒有密碼帳戶的各種命令。最後,我們學習瞭如何為使用者設定密碼,以及如何在 Linux 中鎖定和解鎖使用者。
原文來自: https://blog.51cto.com/u_7390037/5285130
本文地址:
導讀 | 最糟糕的密碼不是弱密碼,而是根本沒有密碼。作為系統管理員,您必須確保每個使用者帳戶都有一個強密碼。接下來我將簡要的解釋如何在 中查詢密碼為空的帳戶。 |
在進入主題之前,讓我們快速回顧一下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
上述命令將列出所有沒有密碼的帳戶。您還可以使用帶有 -S 標誌的 passwd 命令檢查特定使用者帳戶的密碼狀態。
# passwd -S ostechnix
下面是一個上述命令的輸出示例:ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)
passwd命令將指示給定使用者帳戶的密碼狀態。可能的值是:
LK – 該帳戶被鎖定。
NP - 該帳戶沒有密碼。
PS – 該帳戶有一個可用的密碼。
注意:在基於 Debian 的系統中,密碼狀態將分別用L、N、P來標識。
您可以作為無密碼使用者登入,但並不推薦!您必須設定至少包含 8 個字元的強密碼,且密碼中要包括大寫字母、小寫字母、特殊字元和數字。
要在 Linux 中為使用者帳戶設定密碼,請以 root 使用者身份執行passwd 命令,如下所示:作為根使用者:
# passwd ostechnix
使用上述命令時,請將ostechnix 替換為您自己的使用者名稱。現在我們用passwd命令來檢查帳戶的密碼狀態:
# passwd -S ostechnix
輸出示例如下:ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)
有時,您想要鎖定一個沒有密碼的賬戶。如果是這樣,首先如上所述找到密碼為空的使用者,以root使用者的身份執行帶有 -l 標誌的 passwd 命令來鎖定賬戶,其命令如下所示:
# passwd -l ostechnix
下面是上述命令的輸出示例:Locking password for user ostechnix.passwd: Success現在我們再來檢查下帳戶的狀態:
# passwd -S ostechnix
要在 Linux 中解鎖無密碼使用者,請以root身份執行 passwd 命令或帶有-p的usermod命令,其命令如下:
# passwd ostechnix
輸入兩次密碼以解鎖密碼。
使用 usermod 命令解鎖使用者密碼為空的使用者是不可能的,您可以使用 usermod -p 設定密碼來解鎖使用者的密碼。
# usermod -p
在本教程中,我們解釋了什麼是shadow檔案以及該檔案在 Linux 中的用途。然後,我們討論了在 Linux 中查詢所有沒有密碼帳戶的各種命令。最後,我們學習瞭如何為使用者設定密碼,以及如何在 Linux 中鎖定和解鎖使用者。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2895027/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在Linux中,如何查詢系統中佔用CPU最高的程序?Linux
- Linux 系統中如何檢視當前所有登入的使用者Linux
- 修改mysql的root使用者密碼為空MySql密碼
- Linux中如何批次刪除系統中所有的自建使用者Linux
- godadly海外伺服器Linux系統中如何修改使用者密碼?Go伺服器Linux密碼
- Linux系統root使用者密碼忘記如何處理Linux密碼
- 查詢資料庫中的所有的普通使用者資料庫
- 如何設定 Linux 系統的密碼策略Linux密碼
- 華納雲:linux系統中如何查詢oracle錯誤日誌LinuxOracle
- ORACLE查詢所有表空間使用情況Oracle
- MySQL查詢當前資料庫中所有記錄不為空的表MySql資料庫
- 如何使用Rust查詢目錄中的所有 txt 檔案?Rust
- Linux系統中,修改密碼永不過期Linux密碼
- CentOS 系統的磁碟空間佔用情況查詢CentOS
- 根據使用者名稱和密碼查詢使用者密碼
- 在 JavaScript 中如何檢查物件為空JavaScript物件
- linux 常用的系統資訊查詢命令Linux
- JavaScript驗證使用者名稱密碼是否為空JavaScript密碼
- js驗證使用者名稱和密碼為空程式碼JS密碼
- Linux系統中如何切換使用者?Linux
- sql 查詢當前使用者所有表的容量SQL
- Oracle授權A使用者查詢B使用者的所有表Oracle
- MySQL 查詢所有表中的記錄數MySql
- 【Linux】Linux作業系統 單使用者模式破解root密碼Linux作業系統模式密碼
- Mysql中查詢系統時間MySql
- 請教如何提高查詢系統的效能?
- Mybatis模糊查詢結果為空MyBatis
- Linux系統密碼忘記Linux密碼
- 查詢linux系統中大檔案的方法Linux
- js 驗證使用者名稱和密碼是否為空JS密碼
- 如何查詢日誌檔案中的所有ip,正規表示式
- win10系統如何查詢MTU值_win10系統查詢MTU值的方法Win10
- 如何在Mac上查詢和編輯任何密碼?Mac密碼
- 查詢資料庫系統中表空間的使用率資料庫
- 如何安全的儲存使用者密碼?(中)程式碼篇密碼
- Linux使用者資訊查詢及磁碟與檔案系統管理命令!Linux
- LINUX 下查詢指定時間的所有檔案Linux
- 瞭解Linux系統中的Device Mapper機制:使用者空間LinuxdevAPP