Linux

sudo 沒有密碼?

  • December 10, 2009

今天,作為普通使用者(非 root 使用者),我的 Ubuntu 機器上發生了一些奇怪的事情:

  • 登錄後,我可以sudo不輸入密碼(通常,我相信我總是必須輸入密碼sudo?)
  • 當我輸入cd ~時,它告訴我我沒有權限去/root
  • 同樣,我的 bash 提示符顯示類似:而不是我習慣user@host:/home/username的更熟悉的內容。user@host:~
  • 我的個人資料似乎都沒有正確設置,一切似乎都認為我的主目錄是/root.
  • 由於上一個項目符號,我無法執行 run 之類的操作,screen因為它無法在/root目錄中寫入新的配置文件。

知道cating/etc/passwd顯示我的使用者的家是/home/user而不是可能很有用/root

我剛剛做了一個大動作apt-get upgrade,這是我的軟體新版本的正常行為嗎? rkhunter報告了一些可疑文件,但它們似乎已經存在了一段時間並且看起來是合法的(它們看起來是與 Request Tracker 相關的文件)。如果這有助於任何人並且是謹慎的,我可以發布 rkhunter 日誌。並且chkrootkit一無所有。也unhide似乎什麼都沒有註意到。rkhunter似乎唯一關心的是我的openssl, openssh, php,版本GnPG。但是做一個

sudo apt-get update; sudo apt-get upgrade; sudo apt-get dist-upgrade

沒有給我升級包。

有人對如何解決這個問題有什麼建議嗎?獎勵指向任何可以確定我的問題原因的人。

更新:正如我上面所說,我/etc/passwd顯示我的主目錄是正確的(/home/username),但是當我echo $HOME顯示/root. 這是輸出:

user@hostname:/home/user$ getent passwd $USER
user:x:1000:1000:user,,,:/home/user:/bin/bash
user@hostname:/home/user$ echo $HOME
/root

更新更新:感謝這裡的建議,我發現有一個將我.profile/home/userHOME 導出為/root. 雖然我猜這是一些奇怪軟體的工作,但我apt-get刪除它似乎已經解決了我的大部分問題。

感謝大家!

$ id
$ echo $HOME
$ getent passwd $USER

聽起來 $HOME 不正確,這很有趣。如果在登錄時發生這種情況,請查看您的帳戶的系統帳戶數據庫中的內容,這是第二個命令的作用。通常/歷史上,這個數據庫是 /etc/passwd 並且在現代 Linux 上,也會有 /etc/shadow。

在某種程度上,sudo 聽起來您的 uid 已設置為 0,這很奇怪。不要那樣做,這意味著您的帳戶是 root,只是名稱不同,這會使您的帳戶在被濫用時同樣危險。如果發生這種情況,那麼您需要進行一些清理工作。不要這樣做 { sudo vipw } 因為您可能無法再次執行 sudo,具體取決於各種配置的所有權,因此您無法修復權限。而是 { sudo -i } 以 root 身份有效登錄,然後使用 { vipw } 然後使用 { chown -R … } 重置所有權。

引用自:https://serverfault.com/questions/92893