Yanıtlar:
Paket, üzerinden dpkg
(ile birlikte apt install
) kurulduysa, bu oldukça güvenilir bir şekilde çalışacaktır . Varsayılan Ubuntu yüklemesinde oluşturulan kullanıcıların listesi ve bunları oluşturan paket için muru'nun cevabına bakın . Bu kullanıcılar için bu yöntem herhangi bir çıktı üretmez.
Komutu kullanabilirsiniz:
grep -RlE '(adduser|useradd).*systemd' /var/lib/dpkg/info --include='*inst' | sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'
<user>
ilgilendiğiniz kullanıcının adıyla değiştirin , örneğin,systemd
Bu , söz konusu kullanıcıyı oluşturmaktan hangi paketin sorumlu olduğunu görmek için, veya komutu ve ilgili kullanıcı tarafından bilinen tüm paketlerin preinst
ve postinst
komut dosyalarını arar . Sonuç sed'e yönlendirilir, böylece komut dosyasının tam adı yerine yalnızca paket adının kendisini döndürür.dpkg
adduser
useradd
grep -RlE
özyinelemeli olarak arama yapın ve yalnızca eşleşme içeren dosyaların adlarını yazdırın, genişletilmiş normal ifadeler kullanın'(adduser|useradd).*<user>' /var/lib/dpkg/info --include='*inst'
adduser
veya useradd
komutunu ve aynı satırda bulmak istediğiniz kullanıcıyı ( .*
aralarındaki karakterlerle eşleşir, herhangi bir komut seçeneğini yakalar) dpkg
, adlarının bittiği dosyalarda komut dosyalarını depolayan dizinde arayıninst
sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'
/
tam yoldaki ve / .preinst
veya .postinst
uzantıdaki sonuncu dahil olmak üzere her şeyi kaldırBir kıvrımlara ve kullanmaktan daha arama hızlı bir yol öneren @muru sayesinde find
burada :)
grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'
basitleştirmek için find -exec grep
.
basename -s
kabul etmek joker / regex ...) Ben ama adduser ile herhangi preinst komut bulamadık (soneklerden inst öncesi ve sonrası kesmek yapabilirsiniz böylece silkerek )
postinst
, bu yüzden bunu kullanan herhangi bir şey bulamazsınız preinst
(ancak nadir durum mevcut olabilir).
Burada her zamanki gibi adduser
eklenen kullanıcılar ve gruplar için önemli bir istisna vardır : varsayılan olarak Ubuntu ile birlikte gelenler. Bunlar base-passwd
paket tarafından sağlanır . Bu paket tarafından eklenen kullanıcıların ve grupların bir listesi /usr/share/doc/base-passwd/users-and-groups.{html,txt.gz}
. Liste:
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
README ( /usr/share/doc/base-passwd/README
) paketi ayrıca 60000-64999 aralığında UID bulunan bazı kullanıcıları listeler ve bunların ilgili paketler tarafından oluşturulduğunu belirtir.
Ayrıca bakınız:
base-passwd
14.04 için kaynak kodu - *.master
dosyalardaki kullanıcıların ve grupların listesini görebilirsiniz .
preinst
komut dosyasında kullanıcı oluşturan bazı paketler olduğundan da kontrol etmelisiniz . Ama fikri anladım ve kabul edeceğim.