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 whybash
andwhoami
can't find your username.Debian's default for
/etc
is 0755; sochmod 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.