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
  • Just to be clear, this is all local auth and no directory services involved (ie, LDAP or NIS)?
    – MaQleod
    May 27, 2014 at 17:20
  • @MaQleod correct, local authentication only May 27, 2014 at 17:28
  • 1
    Is you nsswitch.conf set up correctly? There should be a line with passwd: files or passwd: compat.
    – mtak
    May 27, 2014 at 18:04
  • 2
    permissions on /etc/bash.bashrc? On which filesystem does it reside? Any strange mount options for it? Does the output of id -G prints the correct group ids? - and for the "i have no name" - run hostname command and/or check file /etc/hostname
    – mihi
    May 27, 2014 at 18:13
  • 1
    As your non-root user, can you cat /etc/passwd? Also, do you have SELinux or some other security layer enabled?
    – derobert
    May 27, 2014 at 19:52

2 Answers 2


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.


The permission of /etc/passwd should be 644. Mine was at 640 due to which I got the I have no name!**@mybox:/home$

As soon as I chmod 644 /etc/passwd as root. That fixed the problem for me.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .