假設您是 Linux 的新手。
按照互聯網上的一些教程告訴您安裝程序或運行命令。可能與服務器有關。
但是,當我運行命令時,出現以下錯誤:
E: 無法打開鎖文件/var/lib/dpkg/lock-frontend – open (13: access denied)
E:無法獲取dpkg前端鎖(/var/lib/dpkg/lock-frontend),你是root嗎?
類似的錯誤是:
dpkg: Error: Need read/write access to dpkg database directory /var/lib/dpkg
E: 子進程 dpkg –set-selections 返回錯誤碼(2)
E: 執行 dpkg 失敗。你是根嗎?
這兩個錯誤都提出了同一個問題:你是根嗎?這是這個問題的答案。這將是根。
成為 root 以避免此錯誤
如何在 Ubuntu 或 Debian 上成為 root? 使用 sudo 命令。
對,就是那樣。無論您運行什麼命令,只需在其前面添加 sudo 即可。
sudo your_command
運行命令 sudo
系統將提示您輸入用戶帳戶的密碼。請記住,當您輸入密碼時,屏幕上不會出現任何內容。沒關係。
系統沒有問題。在大多數 Linux 系統上,密碼輸入不顯示通常的星號或類似的“安全功能”。
只需輸入您的密碼,然後按 Enter。如果密碼輸入正確,您應該能夠執行該命令。
您還可以使用這個方便的 Linux 命令行技巧來運行前面的命令 sudo。
sudo !!
這很簡單,並且可以立即生效,除非您具有 sudo 訪問權限。然後你會看到各種錯誤。
您是否收到錯誤“用戶不在 sudoer 文件中”?
部分用戶無法執行命令 sudo
安裝 Ubuntu 時,您需要創建一個用戶帳戶。如果需要,此用戶會被自動授予以 root 身份運行命令的 sudo 權限。
這發生在 Ubuntu 桌面上,而不是服務器上。大多數服務器發行版都有一個單獨的 root 帳戶。如果您單獨創建一個普通帳戶,您需要將用戶添加到sudoer,以便普通用戶可以使用sudo。
在上面的屏幕截圖中,我創建了這個額外的用戶,但沒有將其添加到 sudo 組。這意味著這裡的用戶“prakash”沒有使用sudo命令的權限,所以系統報錯“prakash不在sudoers文件中”。
事件將在哪里報告?
系統日誌中添加了不正確的 sudo 嘗試。記錄用戶名、虛擬終端號、執行命令的位置、執行的命令。
系統中記錄了錯誤的 sudo 嘗試
這些日誌的位置取決於分佈。
它通常在 Ubuntu journalctl 日誌或 /var/log/auth.log 文件和 Fedora /var/log/audit/audit.log 文件中找到。
如果用戶不在 sudoer 列表中怎麼辦?
如果我不能通過 sudo 使用我當前的用戶帳戶怎麼辦?第一次, 檢查用戶是否具有 sudo 權限。如果沒有,這裡有一些選項 你:
- 以 root 身份登錄或切換到 root(如果您有 root 密碼)。
- 將用戶添加到 sudoer 列表 (如果您對另一個用戶帳戶具有 admin / sudo 權限)。
- 如果您使用的是多用戶 Linux 系統並且您自己沒有 root 或 sudo 訪問權限,請讓您的系統管理員允許用戶 sudo 訪問或安裝您要安裝的應用程序。
這有用嗎?
Sudo 是一種非常全面的安全機制,它不僅僅只是創建常規用戶 root。它可以幫助您審核系統以找出哪個用戶運行了哪個命令 sudo。您還可以配置它,使特定用戶只能執行特定命令,sudo。
桌面 Linux 沒有顯示如此細粒度的 sudo 配置。它已預先配置,因此 sudo 組中的所有用戶都可以以 root 身份運行 sudo 命令。 有關 sudo 的更多信息,請參閱其他文章。
在解決這個經典的初學者問題時,請熟悉 sudo 命令。如果您在評論部分對此主題有任何其他問題,請告訴我們。