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 '14 at 17:20
  • @MaQleod correct, local authentication only – Canadian Luke May 27 '14 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 '14 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 '14 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 '14 at 19:52

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.