3

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
11
  • 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

11

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.

0

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 .