Acabei de encontrar uma condição bizarra em um sistema Debian em que estava trabalhando.
Do nada, um programa reclamou que seu rungroup não foi encontrado. Depois de pesquisar um pouco, parece que meu sistema não acha mais que nenhum usuário ou grupo existe em todo o sistema, incluindo arquivos root
.
No entanto, todos eles ainda estão lá em /etc/passwd
, /etc/group
, etc.
Por exemplo:
root@debian:/etc# getent passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:101:102:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:104:105::/nonexistent:/usr/sbin/nologin
unscd:x:105:109::/var/lib/unscd:/usr/sbin/nologin
ntp:x:106:112::/nonexistent:/usr/sbin/nologin
sshd:x:107:65534::/run/sshd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
festival:x:108:29::/nonexistent:/usr/sbin/nologin
mysql:x:110:116:MySQL Server,,,:/nonexistent:/bin/false
Debian-exim:x:111:117::/var/spool/exim4:/usr/sbin/nologin
postfix:x:112:118::/var/spool/postfix:/usr/sbin/nologin
opendkim:x:113:120::/var/run/opendkim:/usr/sbin/nologin
telnetd:x:109:115::/nonexistent:/usr/sbin/nologin
com:x:1001:1001:,,,:/home/com:/bin/bash
asterisk:x:1004:1004:Asterisk,,,:/home/asterisk:/bin/bash
postgres:x:115:123:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
memcache:x:116:124:Memcached,,,:/nonexistent:/bin/false
do-agent:x:998:998::/home/do-agent:/bin/false
root@debian:/etc# su - root
su: user root does not exist
root@debian:/etc# su - asterisk
su: user asterisk does not exist
root@debian:/etc# su - com
su: user com does not exist
root@debian:/etc# ls -la /etc/passwd
-rw-r--r-- 1 0 0 2227 Jul 29 06:28 /etc/passwd
root@debian:/etc# ls -la /etc/group
-rw-r--r-- 1 0 0 1013 Jul 29 06:28 /etc/group
Outra coisa estranha como você pode ver é que ls
ao invés de mostrar o nome de usuário e grupo do arquivo, apenas mostra o uid e gid do arquivo.
Eu posso cat os arquivos e a saída para todos os usuários e grupos aparece bem.
Então, é claro que agora todos os tipos de coisas não estão funcionando: não consigo fazer novas conexões SSH com o servidor, embora algumas existentes ainda estejam abertas (o mesmo para telnet, etc.)
Estou com um pouco de medo de reiniciar o servidor e ver se isso corrige, pois se não, isso dificultará o procedimento, pois terei que usar o login do console (e dado que não acho que root é um usuário válido, estou um pouco cauteloso até mesmo com isso.)
Alguém já viu esse tipo de coisa antes e sabe porque está acontecendo?
Ok, eu descobri mais rápido do que eu esperava, mas postando já que não era intuitivo.
'/etc' tinha 744 permissões.
chmod 755 /etc
trouxe tudo de volta ao normal.