Respostas:
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 :)
grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'
para simplificar a find -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 use preinst
(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 pelo base-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 é:
root man majordom irc gdm
daemon lp postgres gnats saned
bin mail www-data nobody klog
sys news backup messagebus syslog
sync uucp operator postfix
games proxy list haldaemon
adm fax audio staff sshd
tty voice src users fetchmail
disk cdrom shadow lpadmin cupsys
kmem floppy utmp sasl nogroup
dialout tape video scanner
dip sudo plugdev ssh
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.
preinst
também, pois existem alguns pacotes que criam usuários nesse script. Mas eu entendi a ideia, então eu a aceito.