UID e GID mostrando raiz

0

Temos uma conta de usuário foo que de alguma forma foi vinculada ao uid, guid e groups do root. quando eu executo id foo , ele retorna todas as informações do id do root.

id foo

uid=0(root) gid=0(root) groups=0(root)

Esta conta de usuário é para um antigo associado que não está mais aqui e gostaria de remover completamente a conta dele do servidor. A execução de ps -ef | grep foo não retorna nenhum processo 'para esse usuário, por isso, sinto que nada está sendo executado sob seu nome de usuário.

A execução de userdel foo indica que a conta de usuário não existe, já que vejo a conta como raiz com o uid = 0, mas ainda vejo a conta foo em /etc/passwd as foo:x:0:0::/home/foo:/bin/bash

Quais etapas eu preciso fazer para me livrar dessa conta? Eu preciso de usermod e mudar o uid, gid e groups? Isso quebrará qualquer coisa se eu escolher um uid aleatório não em uso, ou seja, uid = 1099 (foo)?

Im no CentOS 7, o servidor está conectado ao Active Directory, mas essa conta foo é uma conta local no servidor Linux. O usuário foi encerrado antes de conectarmos o Linux ao AD para que a conta não existisse mais no Active Directory.

    
por Govna 19.03.2018 / 19:20

2 respostas

4

Você pode usar vipw para excluir a linha da conta foo em /etc/passwd e /etc/shadow . Depois de fazer isso, a conta desaparece tecnicamente.

Dependendo da versão vipw , depois de usá-la para fazer alterações em /etc/passwd , ela pode solicitar: "você deseja editar /etc/shadow também? (S / N)" ou apenas sugerir usando vipw -s para editar /etc/shadow .

Muitas distribuições do Linux têm o comando correspondente vigr para editar /etc/group (e /etc/gshadow , se houver).

Usar vipw e vigr é mais seguro do que editar os arquivos diretamente, pois esses comandos farão uma cópia do arquivo antes da edição e farão algumas verificações de integridade antes de substituir o original pela cópia editada.

Quando a conta for excluída de /etc/passwd , você poderá fazer o que quiser no diretório pessoal do usuário e no spool de correio local, ou seja, /home/foo e /var/mail/foo . Normalmente, você deseja apenas removê-los, a menos que haja algum motivo para arquivá-los.

Você também desejará verificar o agendador de tarefas; o layout pode variar um pouco, mas pelo menos nos sistemas Debian, existem diretórios atjobs , atspool e crontabs in /var/spool/cron/ : verifique qualquer menção ao usuário foo em qualquer um deles, e remova qualquer tais arquivos.

    
por 19.03.2018 / 19:53
4

Recomendamos não usar ferramentas como userdel , pois não está claro por que foo tem uid 0 e você não deseja excluir acidentalmente o root.

Em vez disso, edite o /etc/passwd e exclua a entrada para foo . Certifique-se de que a própria raiz tenha uma entrada correta:

root:x:0:0:root:/root:/bin/bash

Faça o mesmo com /etc/group . Exclua a entrada para foo e verifique a entrada para root :

root:x:0:

Em seguida, verifique a entrada de senha em /etc/shadow , exclua foo , verifique root entry. A entrada para root deve ser semelhante a:

root:SOMEPASSWORDCODE:17219:0:99999:7:::

Talvez haja entradas adicionais para foo em /etc/group . Exemplo possível:

audio:x:29:foo,pulse

Para um trabalho limpo, remova foo respetivamente foo, nessas entradas também.

Se /home/foo existir, verifique e exclua-o depois.

Atualmente, foo é o mesmo que root . Você não encontrará processos ou arquivos de propriedade do foo, pois todos pertencem a root . Os proprietários de arquivos e processos são registrados pelo seu uid, não pelo nome. Portanto, todos os processos ou arquivos com uid 0 aparecem como root. (Alternativamente, todos os processos e arquivos de raiz podem aparecer como foo em vez de root ).

    
por 19.03.2018 / 19:43

Tags