我正在运行 Debian Wheezy 服务器,并且刚刚运行了测试备份 - 但是,它却出了问题!我尽我所能清理了它,但现在却出现了一个非常烦人的错误。
通过 SSH 禁用 Root 登录。用户必须以普通用户身份登录,然后执行su
以获取 Root 访问权限。当我以我的用户身份登录时,我收到以下消息:
-bash: /etc/bash.bashrc: Permission denied
I have no name!@server:~$
当我执行 aa 时whoami
:
$ whoami
whoami: cannot find name for user ID 1000
检查我的文件,这些用户 ID 确实存在!和/etc/passwd
上的权限为 644,所有者为。 检查另一台服务器,文件匹配相同,无需更改。/etc/bash.bashrc
/etc/passwd
root:root
/etc/bash.bashrc
值得庆幸的是,我可以su
进入 root 用户并访问我需要的内容,但我不需要这样做。我在 下找不到任何相关的日志条目/var/log
,因为它们只显示成功的登录尝试(auth.log
),但没有错误。我该怎么做才能允许普通用户再次登录?下面是我的文件的摘录/etc/passwd
,显示用户 ID 1000 存在:
lbarone:x:1000:1000:Luke Barone,,,:/home/lbarone:/bin/bash
答案1
为了读取/etc/bash.bashrc
(和/etc/password
),父目录的权限也很重要。特别是,您需要+x
它们。在您的案例中(来自聊天对话) 结果表明权限/etc
有误。
无法读取/etc/passwd
是为什么bash
并且whoami
找不到您的用户名。
Debian 的默认权限/etc
是 0755;因此chmod 0755 /etc
(以 root 身份)至少可以解决这个眼前的问题。您还应该调查一下这是如何发生的,以确定是否有其他目录具有不正确的权限。
答案2
的权限/etc/passwd
应该是 644。我的权限是 640,因此我得到了I have no name!**@mybox:/home$
我一以chmod 644 /etc/passwd
root 身份登录。这帮我解决了这个问题。