Temos uma conta de usuário foo
que de alguma forma foi vinculada ao uid, guid e grupos do root. quando eu executo id foo
, ele retorna todas as informações de id de 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 sua conta do servidor. A execução ps -ef | grep foo
não retorna nenhum processo para este usuário, então tenho certeza de que nada está sendo executado com o nome de usuário.
A execução userdel foo
indica que a conta de usuário não existe, pois tenho certeza de que é a conta como root com o uid = 0, mas ainda vejo a foo
conta /etc/passwd
comofoo:x:0:0::/home/foo:/bin/bash
Quais etapas eu preciso fazer para me livrar desta conta? Preciso usermod e alterar o uid, gid e grupos? Isso quebrará alguma coisa se eu escolher um uid aleatório que não esteja em uso, ou seja, uid=1099(foo)?
Estou no CentOS 7, o servidor está conectado ao Active Directory, mas esta conta foo é uma conta local no servidor Linux. O usuário foi encerrado antes de conectarmos o Linux ao AD, portanto, a conta não existe mais no Active Directory.
Eu recomendo não usar ferramentas como
userdel
porque não está claro porfoo
que o uid0
e você não deseja excluir acidentalmente o root.Em vez disso, edite
/etc/passwd
-se e exclua a entrada parafoo
. Certifique-se de que o próprio root tenha uma entrada correta:Faça o mesmo para
/etc/group
. Exclua a entrada parafoo
e verifique a entrada pararoot
:Em seguida, verifique a entrada da senha em
/etc/shadow
, deletefoo
, verifique aroot
entrada. A entrada pararoot
deve ser semelhante a:Talvez haja entradas adicionais para
foo
in/etc/group
. Possível exemplo:foo
Para um trabalho limpo , removafoo,
também essas entradas.Se
/home/foo
existir, verifique e exclua-o posteriormente.Atualmente
foo
é o mesmo queroot
. Você não encontrará processos ou arquivos pertencentes a foo, pois todos eles pertencem aroot
. Os proprietários de arquivos e processos são registrados por seu uid, não por seu nome. Portanto, todos os processos ou arquivos com uid 0 aparecem como root. (Como alternativa, todos os processos e arquivos raiz podem aparecer comofoo
em vez deroot
).Você poderia usar
vipw
para deletar a linha dafoo
conta em/etc/passwd
e/etc/shadow
. Depois de fazer isso, a conta é tecnicamente perdida.Dependendo da
vipw
versão, depois de usá-lo para fazer alterações em/etc/passwd
, ele pode solicitar: "você/etc/shadow
também deseja editar? (S/N)" ou apenas sugerir o usovipw -s
para editar/etc/shadow
.Muitas distribuições do Linux possuem o comando correspondente
vigr
para edição/etc/group
(e/etc/gshadow
, se houver).Usar
vipw
evigr
é 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 sanidade antes de substituir o original pela cópia editada.Depois que a conta é excluída de
/etc/passwd
, você pode fazer o que quiser com o diretório inicial do usuário e o 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 deve verificar o agendador de tarefas; o layout pode variar um pouco, mas pelo menos nos sistemas Debian, existem diretórios
atjobs
,atspool
ecrontabs
em/var/spool/cron/
: verifique se há qualquer menção de usuáriofoo
em qualquer um deles e remova esses arquivos.