-bash:/etc/bash.bashrc:权限被拒绝,我没有名字

-bash:/etc/bash.bashrc:权限被拒绝,我没有名字

我正在运行 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/passwdroot: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/passwdroot 身份登录。这帮我解决了这个问题。

相关内容