sudo没有密码?

今天,我的Ubuntu盒子里发生了一些奇怪的事情:普通的(非root用户):

  • 只要我login,我可以sudo不input我的密码(通常,我相信我总是必须键入我的密码sudo ?)
  • 当我键入cd ~ ,它告诉我,我没有权限去/root
  • 同样,我的bash提示符显示如下: user@host:/home/username而不是熟悉的user@host:~我习惯的。
  • 似乎我的configuration文件似乎没有正确设置了,似乎一切都认为我的主目录是/root
  • 由于之前的项目符号,我不能像运行screen那样做,因为它不能在/root目录中写入新的configuration文件。

知道/etc/passwd显示我的用户的home是/home/user而不是/root可能很有用。

我只是做了一个大的apt-get upgrade ,这是我的软件的新版本的正常行为? rkhunter报告了一些可疑的文件,但似乎已经有一段时间了,似乎是合法的(它们看起来是与请求跟踪器相关的文件)。 我可以发布rkhunter日志,如果这有助于任何人,并审慎。 而chkrootkit什么也没有出现。 也unhide似乎没有注意到任何东西。 rkhunter似乎只关心的是我的opensslopensshphpGnPG 。 但是做一个

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

给我没有包升级。

任何人有什么build议如何解决这个问题? 奖金指向任何人可以确定我的问题的原因。

更新 :如上所述,我的/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 

更新更新 :感谢这里的build议,我发现/home/user中有一个.profile导出我的HOME为/root 。 虽然我猜这是一些奇怪的软件的工作,我apt-get去除它似乎已经解决了我的大部分问题。

感谢大家!

 $ id $ echo $HOME $ getent passwd $USER 

听起来像$ HOME是不正确的,这很有趣。 如果login时发生这种情况,请查看您的帐户的系统帐户数据库中的内容,这是第二个命令的作用。 通常/历史上,这个数据库是/ etc / passwd,在现代Linux上,也会有/ etc / shadow。

部分,sudo听起来像你的uid被设置为0,这将是奇怪的。 不要这样做,这意味着你的账户是根,只是用一个不同的名字,这使得你的账户如果被滥用,就像危险一样。 如果发生这种情况,那么你有一些清理工作在你面前。 不要做{sudo vipw},因为你有可能不能再次sudo,取决于各种configuration的所有权,所以你不能修复权限。 相反{sudo -i}以root身份有效login,然后使用{vipw},然后使用{chown -R …}来重置所有权。

我可能是错的,但这里是我的想法1)sudoing时没有密码被重置:你的默认shell可能是sudo代替bash。 检查/ etc / passwd,2)无法进入/ root:检查该文件夹的权限,如果需要chmod u + x it,3)在sudo模式下,这是非常正常的,4)它与1)

正如我写的,这只是build议。 但是这里有一些原因的解释。 uid和gid不是有效的uid和有效的gid。 当你sudo的时候,你只需要改变uid / gid而不是生效的。 另一个可以去/ root的build议:试试sudo bash

您可以在部署时编辑您的visudo以恢复sudo密码请求

在terminal:visudo

你应该编辑这一行:

 %sudo ALL=NOPASSWD: ALL 

 ALL=NOPASSWD:ALL