Hangi paketin kullanıcı oluşturduğunu nasıl kontrol edebilirim?


14

Bazı paketlerin yükleme sırasında çalıştırılan ve kullanıcı hesapları oluşturan komut dosyalarına sahip olduğundan şüphelenilir /etc/passwd. Hangi paketin belirli bir kullanıcı oluşturduğunu nasıl kontrol edebilirim?

Yanıtlar:


16

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 preinstve postinstkomut 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.dpkgadduseruseradd

açıklama

  • 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'adduserveya useraddkomutunu 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 / .preinstveya .postinstuzantıdaki sonuncu dahil olmak üzere her şeyi kaldır

Bir kıvrımlara ve kullanmaktan daha arama hızlı bir yol öneren @muru sayesinde findburada :)


Bu preinstkomut dosyasında kullanıcı oluşturan bazı paketler olduğundan da kontrol etmelisiniz . Ama fikri anladım ve kabul edeceğim.
Cyker

@Cyker Evet teşekkürler :) Düzenleyeceğim ... Hepsini yakalayıp yakalayamayacağımı görmek için şimdi bakıyorum
Zanna

grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'basitleştirmek için find -exec grep.
muru

müthiş teşekkürler @muru ... (şimdi sadece ihtiyaç basename -skabul etmek joker / regex ...) Ben ama adduser ile herhangi preinst komut bulamadık (soneklerden inst öncesi ve sonrası kesmek yapabilirsiniz böylece silkerek )
Zanna

@ Debian Politikasının önerdiği Anna postinst, bu yüzden bunu kullanan herhangi bir şey bulamazsınız preinst(ancak nadir durum mevcut olabilir).
muru

15

Burada her zamanki gibi addusereklenen kullanıcılar ve gruplar için önemli bir istisna vardır : varsayılan olarak Ubuntu ile birlikte gelenler. Bunlar base-passwdpaket 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:

Kullanıcılar (genellikle karşılık gelen gruplarla)

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

Gruplar (ilgili kullanıcılar olmadan)

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:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.