sudo 不需要密码吗?

sudo 不需要密码吗?

今天,以普通用户(非 root 用户)的身份,我的 Ubuntu 机器上发生了一些奇怪的事情:

  • 一旦我登录,我就可以sudo不用输入密码(通常,我相信我总是必须输入密码才能sudo?)
  • 当我输入时cd ~,它告诉我,我没有权限访问/root
  • 类似地,我的 bash 提示符显示类似的内容:user@host:/home/username而不是user@host:~我所熟悉的提示。
  • 我的所有配置文件似乎都没有正确设置,一切似乎都认为我的主目录是/root
  • 由于前面的问题,我无法执行诸如运行之类的操作,screen因为它无法在/root目录中写入新的配置文件。

知道cating/etc/passwd表明我的用户的家是/home/user而不是可能会很有用/root

我刚刚做了一个大apt-get upgrade动作,这是我软件新版本的正常行为吗? rkhunter报告了一些可疑文件,但它们似乎已经存在了一段时间,而且似乎是合法的(它们看起来是与请求跟踪器相关的文件)。如果这对任何人有帮助并且是谨慎的,我可以发布 rkhunter 日志。并且什么chkrootkit都没有出现。似乎也unhide没有注意到任何事情。唯一似乎rkhunter关心的是我的版本openssl,,,。但是做一个opensshphpGnPG

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/user将我的 HOME 导出为/root。虽然我猜这是一些奇怪的软件的工作,但我apt-get删除它似乎已经解决了我的大部分问题。

感谢大家!

答案1

$ 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 ... } 重置所有权。

答案2

我可能错了,但我的想法是 1) 使用 sudo 时不需要输入密码:您的默认 shell 可能是 sudo,而不是 bash。请在 /etc/passwd 中检查;2) 无法转到 /root:请检查该文件夹的权限,如果需要,请 chmod u+x;3) 在 sudo 模式下,这很正常;4) 它与 1) 有关

正如我所写,这只是建议。但这里有一些原因的解释。uid 和 gid 不是有效 uid 和有效 gid。当你使用 sudo 时,你只会更改 uid/gid,而不会更改有效 uid/gid。另一个能够转到 /root 的建议:尝试sudo bash

答案3

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

在终端:visudo

您应该编辑此行:

%sudo ALL=NOPASSWD: ALL

ALL=NOPASSWD:ALL

相关内容