Suspeita-se que alguns pacotes tenham scripts executados no momento da instalação, os quais criam contas de usuário /etc/passwd
. Como posso verificar qual pacote criou um usuário específico?
fonte
Suspeita-se que alguns pacotes tenham scripts executados no momento da instalação, os quais criam contas de usuário /etc/passwd
. Como posso verificar qual pacote criou um usuário específico?
Isso funcionará razoavelmente de forma confiável se o pacote foi instalado via dpkg
(inclusive com apt install
). Veja a resposta do muru para obter uma lista de usuários criados na instalação padrão do Ubuntu e o pacote que os cria. Para esses usuários, esse método não produzirá nenhuma saída.
Você pode usar o comando:
grep -RlE '(adduser|useradd).*systemd' /var/lib/dpkg/info --include='*inst' | sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'
substitua <user>
pelo nome do usuário em que você está interessado, por exemplo,systemd
Ele pesquisa os scripts preinst
e postinst
de todos os pacotes conhecidos dpkg
pelo comando adduser
ou useradd
e pelo usuário em questão, para ver qual pacote é responsável pela criação desse usuário. O resultado é canalizado para sed e, portanto, retorna apenas o nome do pacote em vez do nome completo do arquivo de script.
grep -RlE
pesquise recursivamente e imprima apenas os nomes dos arquivos que contêm correspondências, use expressões regulares estendidas'(adduser|useradd).*<user>' /var/lib/dpkg/info --include='*inst'
procure o comando adduser
ou useradd
e o usuário que você deseja encontrar na mesma linha ( .*
corresponderá a qualquer caractere entre eles, capturando qualquer opção de comando) no diretório em que dpkg
armazena scripts, em arquivos cujos nomes terminam cominst
sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'
retirar tudo antes e incluindo o último /
no caminho completo ea .preinst
ou .postinst
extensãoAgradecemos a @muru por sugerir uma maneira mais limpa e rápida de pesquisar do que usar find
aqui :)
preinst
também, pois existem alguns pacotes que criam usuários nesse script. Mas eu entendi a ideia, então eu a aceito.grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'
para simplificar afind -exec grep
coisa.basename -s
aceitar caracteres curinga / regex ...) para que eu possa remover os sufixos pre AND post inst (mas não encontrei nenhum script de pré-instalação com o adduser, então, encolher os ombros) )postinst
, por isso é improvável que você encontre algum que usepreinst
(mas suponho que possa haver um caso raro).Há uma exceção importante para os
adduser
usuários e grupos normalmente adicionados aqui: aqueles que acompanham o Ubuntu por padrão. Estes são fornecidos pelobase-passwd
pacote. Uma lista de usuários e grupos adicionados por este pacote é fornecida (e descrita) em/usr/share/doc/base-passwd/users-and-groups.{html,txt.gz}
. A lista é:Usuários (geralmente com grupos correspondentes)
Grupos (sem usuários correspondentes)
O pacote README (
/usr/share/doc/base-passwd/README
) também lista alguns usuários com UIDs no intervalo 60000-64999 e afirma que eles são criados pelos respectivos pacotes.Veja também:
base-passwd
14.04 - você pode ver a lista de usuários e grupos nos*.master
arquivos.fonte