如果我刪除所有使用者密碼會發生什麼事?

如果我刪除所有使用者密碼會發生什麼事?

我有一個 Fedora VPS,其 root 用戶沒有密碼。我使用 SSH 金鑰登入。

我在該伺服器上還有另一個權限較低的帳戶,用於網路管理。我現在也刪除了它的密碼。

例如,如果伺服器上沒有擁有密碼的用戶,那麼如果我遺失了 SSH 金鑰,到底會發生什麼情況?伺服器會不會因為無法登入而永遠無法使用?

sudo另外,當 root 和呼叫使用者都沒有密碼時,程式如何運作?我嘗試了一下,它甚至沒有要求我輸入密碼:它就有效了,因為我user ALL=(ALL) ALL的 sudoers 文件中有該行(我應該更改它嗎?)

答案1

如果您刪除文件的第二個字段,/etc/passwd那麼用戶可以毫無困難地登入。只需嘗試登入即可允許他們進入。

root:$1$iM/2lekk$rXUAcF5fY8ddLL.B1bkH63:12242:0:99999:7:::

/etc/passwd 底漆

                               passwd 檔案的 ss

  1. 使用者名稱:使用者登入時使用。
  2. 密碼:x 字元表示加密的密碼儲存在 /etc/shadow 檔案中。
  3. 使用者 ID (UID):必須為每個使用者指派一個使用者 ID (UID)。 UID 0(零)為 root 保留,UID 1-99 為其他預定義帳號保留。另外 UID 100-999 由系統保留用於管理和系統帳戶/群組。
  4. 群組 ID (GID):主要群組 ID(儲存在 /etc/group 檔案中)
  5. 使用者ID資訊:評論欄位。它允許您添加有關用戶的額外信息,例如用戶的全名、電話號碼等。
  6. 主目錄:使用者登入時所在目錄的絕對路徑。
  7. Command/shell:命令或 shell 的絕對路徑 (/bin/bash)。通常,這是一個外殼。請注意,它不一定是外殼。

借自了解 /etc/passwd 檔案格式

停用密碼登入

此欄位為空且包含 x ( :x:) 與文件:!:中的a 之間存在細微差別/etc/shadow。這意味著該帳戶被故意設定為不允許登錄,這可能更符合您的要求。

/etc/影子

root:!:15669:0:99999:7:::

對於任何帳戶都可以執行相同的操作,如果您確實只想允許ssh使用公鑰/私鑰登錄,這可能是我建議您執行此操作的方式。

其他問題

例如,如果伺服器上沒有擁有密碼的用戶,那麼如果我遺失了 SSH 金鑰,到底會發生什麼情況?伺服器會不會因為無法登入而永遠無法使用?

只要您可以實際存取伺服器,您就始終可以存取系統。需要重新啟動,並且使用 VPS 可能會有點困難,但應該是可能的。

您通常將系統啟動到單一使用者模式,此時您可以根據需要編輯/etc/passwd&檔案。/etc/shadow

另外,當 root 和呼叫使用者都沒有密碼時 sudo 程式如何運作?我嘗試了一下,它甚至沒有要求我輸入密碼:它就起作用了,因為我的 sudoers 文件中有該用戶 ALL=(ALL) ALL 行(我應該更改它嗎?)

是的,如果沒有密碼,使用sudo會變得更加困難。在處理 時,有一些方法可以使用其他來源sudo。請參閱此 U&L 問答,標題為:設定 sudo 密碼與登入密碼不同

答案2

請注意,有幾件事可以稱為「刪除密碼」。在 Linux 上:

  • passwd -d USER將帳戶設定為允許無需密碼即可登入。 (在這種情況下,某些服務,特別是 ssh,往往會設定為阻止登入。)
  • passwd -l USER鎖定帳戶密碼:不接受任何密碼。仍然可以透過其他方式登錄,例如 ssh 金鑰或 sudo。
  • usermod -e 1 USER鎖定帳戶(透過將密碼的到期日期設定為過去的日期):無法透過任何服務登入該帳戶。

我假設您指的是第二個含義:您已經使這些帳戶無法使用密碼登錄,但仍然可以透過 ssh 使用金鑰或使用 sudo 進行存取。

如果您停用了帳戶的密碼,您將無法再使用 sudo。您有一段寬限期,在此期間 sudo 不會再次提示您輸入密碼。之後,除非您以不尋常的方式更改了預設配置,否則 sudo 會提示您輸入密碼,您將無法輸入密碼,因為沒有更多密碼。這不適用於帶有NOPASSWD標籤的 sudoers 規則。

刪除密碼並不比選擇強密碼安全。如果您的 VPS 提供了登入虛擬控制台的方法,請為 root 帳戶產生一個長的隨機密碼,測試它是否有效,列印出來並將這張紙放入您的保險箱中。這樣,如果出現問題(例如「哎呀,我把自己鎖在了 ssh 之外」或「哎呀,我把自己鎖在了 sudo 之外」),你就可以恢復對系統的存取。對於您的帳戶,選擇一個您可以記住的較短密碼,停用 SSH 登入密碼(可選),然後輸入密碼以sudo成為 root。從普通帳戶到 root 的額外身份驗證非常有用,因為在非 root 帳戶中植入未被檢測到的木馬要困難得多。

答案3

大多數時候沒有密碼就很好。

是的,如果您只允許透過 ssh 金鑰進行身份驗證,並且您遺失了 ssh 金鑰,則您將無法再登入。在這種情況下,您可以啟動一些 Live CD,安裝原始系統並新增 root 密碼。 (如果您沒有這樣的選項,也許最好設定 root 密碼,以防萬一。)

Sudo 可以設定為不詢問任何密碼。有一個NOPASSWD:選項可以激活它。 (看man sudoers。)

請注意,還有許多其他方法可用於身份驗證。您可以透過配置來啟動它們聚丙烯醯胺系統。

相關內容