Debian paketi nasıl kullanıcı hesapları oluşturmalıdır?


33

Paket , kullanıcı hesabından çalışması gereken qqq.debprogramı yükler . Paket program, config dosyası ve initscript'ten oluşur.qqquqqqqqqqqq.conf/etc/init.d/qqq

Paket kullanıcı oluşumunu nasıl yönetmeli uqqq? Bu konuda en iyi uygulamalar veya resmi kurallar var mı?

  1. Sadece kullanıcıyı uqqqpostinst içinde otomatik olarak oluşturun ;
  2. /etc/init.d/qqqBetiğin ilk açılışında kullanıcıyı otomatik olarak oluşturun ;
  3. Kullanıcı qqqprogramı ilk başlatıldığında otomatik olarak oluştur (bağımsız değişkenler olmadan)
  4. Herhangi bir kullanıcı hesabı oluşturmayın, kullanıcı yönetici tarafından açıkça oluşturulmadıkça başlatmayı reddetme (örneğin, kullanma qqq --create-user);
  5. Hiçbir kullanıcı hesabı oluşturmayın, varsayılan olarak kökünden güvenli olmayan bir şekilde çalıştırın;
  6. Etkileşimli olarak postinst, init.d betiği veya qqqkendisinden bir kullanıcı oluşturup oluşturmadığını sorun.

Paket, kaldırıldığında kullanıcı hesabını kaldırmalı mı?


7
En kolay yol, bu sorunun cevaplarına ulaşmak, resmi Debian paketlerinin kurulum öncesi / sonrası senaryolarına bakmaktır. Sadece grep adduser /var/lib/dpkg/info/*.postinstbirçok örnek almak için herhangi bir Debian tabanlı sistem üzerinde çalıştırın .
jofel

Ne zaman adduserkullanılır, aynı zamanda paketin bağlıdır gerekmektedir. Bakınız: lintian.debian.org/tags/…
Lekensteyn

Yanıtlar:


22

Debian wiki, daha önce bahsedilen Debian Politika Kılavuzundan daha kapsamlı ve özel bir rehbere sahiptir. AccountHandlingInMaintainerScripts'e bakın :

Eklenti programı, --system seçeneğiyle çağrıldığında doğru olanı yapar. Bu nedenle genellikle sadece aramak için gereklidir

adduser --system $ USERNAME

Giriş bilgileriniz devre dışı bırakılmış, birincil bir grup gruba ve / home altındaki bir ana dizine sahip bir hesap oluşturmak için görevinizde. Başka seçenekler istiyorsanız, istediğiniz şekilde ekleyin.

Adduser --system genellikle doğru olanı yaptığından, normalde bir hesabın zaten var olup olmadığını kontrol etmek için normalde gerekli olması gerekmez. Değilse, sürdüren komut dosyalarınızı basit tutmak için lütfen adduser'a karşı bir hata bildirin.

Hesapları silmeyle ilgili verdiği öneriler yetersizdir. Bununla birlikte, fedora için ilgili tavsiyelerin denk olmadığını da not edeceğim .

Kullanıcıları veya grupları kaldırmayın Paketler tarafından oluşturulan kullanıcıları veya grupları asla kaldırmayız. Bu kullanıcılara / gruplara ait dosyaların geride bırakılıp bırakılmadığını kontrol etmenin akıllıca bir yolu yoktur (ve olsa bile onlarla ne yaparız?) Ve bunları artık var olmayan kullanıcılara / gruplara işaret eden sahipliklerle geride bırakmak güvenlik sorunlarına neden olabilir anlamsal olarak ilgisiz bir kullanıcı / grup daha sonra oluşturulduğunda ve UID / GID'yi yeniden kullandığında. Ayrıca, bazı kurulumlarda kullanıcıyı / grubu silmek mümkün olmayabilir ve / veya istenemez (örn. Paylaşılan, uzak bir kullanıcı / grup veritabanı kullanılırken). Kullanılmayan kullanıcıların / grupların temizlenmesi, isterlerse ilgilenmeleri için sistem yöneticilerine bırakılır.


12

Paketleri yükleyen bir yönetici olarak paketlerimden önce veya sonra istedikleri kullanıcıları otomatik olarak oluşturmalarını beklerim, böylece kullanıcının sahip olması gereken tüm dosyalar program çalıştırılmadan önce oluşturulabilir.

Programınız yalnızca gerekmesi halinde (örneğin ayrıcalıklı limana bağlanır) root olarak çalıştırılmalı ve ideal olarak gerekli kökleri yaptıktan sonra ayrıcalıklarını bırakmalıdır.

Diğer (yüklü) paketlerin bunu kullanarak nasıl işlendiğine bakabilirsiniz.

grep -l adduser /var/lib/dpkg/info/*postinst /var/lib/dpkg/info/*preinst

ve listelenen dosyaların okunması (çoğu birden fazla seçenek satırı alır).

Garip bir şekilde, bir kullanıcı yaratan benim kurulu paketlerimden biri adduserhariç, kullanıcı eklemek için kullanırım , ancak adduser paketi gerekli bir paket değildir, bu nedenle paketinizin buna bağlı olarak oluşturulması gerekir. useraddProgram libuuid1 paket tarafından kullanılan ve bir parçası olan passwdgerekli bir pakettir paket.


1
Bu korkunç, el ile kesmek yerine preinst komut dosyalarını oluşturmanın uygun yolunu kontrol edin.
LtWorf

--quietyaklaşım çok popüler görünüyor
vidstige

6

Bölüm 10.9. İzinler ve sahipleri de Debian Policy Manual siz ( "sürümü 3.9.5.0, 2013/10/28" dan) aradığınızı vardır:

Paketiniz için yeni bir kullanıcı veya grup oluşturmanız gerekirse, iki olasılık vardır. Öncelikle, ikili paketteki bazı dosyaların bu kullanıcı veya gruba ait olmasını sağlamanız gerekebilir veya kullanıcı veya grup kimliğini (yalnızca addan ziyade) ikili dosyaya derlemeniz gerekebilir (buna rağmen bundan kaçınılması gerekir). mümkün, bu durumda olduğu gibi, statik olarak ayrılmış bir kimliğe ihtiyacınız var).

Statik olarak tahsis edilmiş bir kimliğe ihtiyaç duyuyorsanız, base-passwd' maintainer, and must not release the package until you have been allocated one. Once you have been allocated one you must either make the package depend on a version of thebase-passwd 'paketinde /etc/passwd' or / etc / group içinde bulunan kimliğe sahip bir kullanıcı veya grup kimliği istemeniz veya paketinizi doğru bir kullanıcı veya grup oluşturacak şekilde ayarlamanız gerekir. id ( adduser') in itseğer mümkünse 'preinst' veya postinst ' kullanmak postinst'. (Doing it in thetercih edilir, aksi takdirde `adduser' paketinde bir ön bağımlılık gerekli olacaktır.)

Not: debian-devel listesi oldukça aktiftir ve bu soruları da cevaplar (bu örnek 2003'ten gelse de).


3
Yani, kısacası basitleştirilmiş cevabı "Kullanım olduğu adduseriçinde postinst".
Vi.
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.