Linux – -bash: /etc/bash.bashrc: Permission denied I have no name

bashdebianlinux

I have a Debian Wheezy server running, and a test-backup was just run – However, it went the other way! I cleaned it up the best I could, but I'm getting a VERY annoying error now.

Root login is disabled via SSH. The user has to log in as a regular user, then execute su to get Root access. When I log in as my user, I get the following message:

-bash: /etc/bash.bashrc: Permission denied
I have no name!@server:~$

When I execute aa whoami:

$ whoami
whoami: cannot find name for user ID 1000

Checking my /etc/passwd file, those user IDs do exist! The permissions on /etc/bash.bashrc and /etc/passwd are 644, owned by root:root. Checking on another server, the /etc/bash.bashrc files match up the same, no changes required.

There is the silver lining in that I can su into the root user, and access what I need, but I shouldn't need to do this. I cannot find any relevant log entries under /var/log, as they just show the successful login attempts (auth.log), but no errors. What can I do to allow the regular users to login again? Below is an exert of my /etc/passwd file, showing that the user ID 1000 exists:

lbarone:x:1000:1000:Luke Barone,,,:/home/lbarone:/bin/bash

Best Answer

In order to read /etc/bash.bashrc (and /etc/password) the permissions on the parent directories matter, too. In particular, you need +x on them. In your case (from the chat conversation) it turns out somehow the permissions on /etc were wrong.

The inability to read /etc/passwd is why bash and whoami can't find your username.

Debian's default for /etc is 0755; so chmod 0755 /etc (as root) will fix at least that immediate problem. You should also investigate how that happened, to determine if there might be other directories with incorrect permissions.

Related Question