Bir başka alternatif de Linux From Scratch'in önerileri :
Paket Kullanıcılarını Kullanarak Daha Fazla Kontrol ve Paket Yönetimi
3 Paket Kullanıcıları
3.1 Giriş
Bu programın temel fikri kolayca açıklanabilir. Her paket belirli bir "paket kullanıcısına" aittir. Bir paketi kurduğunuzda, paketi yükleyen tüm dosyaların paket kullanıcısına ait olmasına neden olarak bu paket kullanıcısı olarak oluşturup yüklersiniz. Sonuç olarak, normal paket yönetimi görevlerinin tümü standart komut satırı yardımcı programlarının kullanımıyla rahatça gerçekleştirilebilir. Bir basit ls -l <file>
size, örneğin, hangi paketin
<file>
ait olduğunu ve bir find -user ...
komutun, belirli bir pakete ait tüm dosyalar üzerinde bir işlem gerçekleştirmenize izin verdiğini söyleyecektir, örneğin, paketi kaldırmak için onları silin.
Ancak paket yönetimi, paket kullanıcılarının uygun olduğu her şey değildir. Paket kullanıcıları kök haklarına sahip olmadıkları için, bir paketin yükleme yapabilecekleri sınırlıdır. Bir paket kullanıcısının yapmasına izin verilmeyen bir şey, örneğin, farklı bir paket kullanıcısının dosyalarının üzerine yazmaktır. Aynı addaki bir ikili dosya, kütüphane veya başlık dosyasını yüklemek isteyen farklı paketler arasında çıkan çatışmalar düşündüğünüzden daha yaygındır. Paket kullanıcıları, B paketinin kurulum riskini asla siz paketlemeden sessizce A paketinden tahrip etme riskine maruz bırakmazsınız. B paketinin kurulumu sırasında her girişimi "İzin verilmez" veya "İşleme izin verilmiyor" hatasına neden olur, böylece uygun adımları atama şansınız olur. Paket kullanıcılarının yapmasına izin verilmeyen başka bir şey setuid root binary'leri yüklemektir. İkili setuid kökü yapma kararı aynı zamanda akıllı bir yöneticinin bir yazılım paketinin yaratıcısına bırakmak istemediği bir şeydir.
Genellikle paket kullanıcı hesaplarının geçerli bir parolası yoktur; bu nedenle su
, paket kullanıcılarının bu sisteme ek bir yol açmamasını ve güvenliği baltalamasını sağlayan bir paket kullanıcısına yalnızca kök kullanıcı tarafından verilebilir . Ama olabilir yükleyip gerçek kök hesabına erişimi kalmadan bunu belli yazılım paketlerini korumak isterler eş yönetici izin vermek için yine şifreleri ayarlayın. Bu yardımcı yönetici, örneğin çalışma grubu için gerekli olabilecek ek kitaplıkları yükleyebilir, silebilir, değiştirebilirdi. Yine de, libc gibi kendisine ait olmayan kütüphaneleri çıkaramaz veya değiştiremezdi.
Bu ilk kaba öneriden sonra, gelişmiş bir değişken buldum:
crablfs - Kullanıcı Tabanlı Paket Yönetim Sistemi
Bu crablfs
, paket yönetimi için benzersiz sıvılar ve kılavuzlar kullanan paket yönetiminin en son örneğidir, ancak sourceforge üzerinde ulfs'te tekrar gelişmektedir:
uLFS: Sıfırdan Yönetilebilir ve Yeniden Kullanılabilir Linux'unuz
Kurulu paketlerin nedensel kullanıcıları için "paket kullanıcıları" LFS çözümünün hafif, daha az istilacı ve zarif olduğunu düşünüyorum. Kısacası, içinde paketlerini yüklemek /usr/local
veya /home/user/local
ve her paket için eşsiz bir uid ve Gids kullanarak dosyaları izlemek, ancak geleneksel yerlerin ortak dizinlere tüm dosyaları koymak /usr/local/bin
, /usr/local/lib
tüm ana akım Linux dağıtımlarında olduğu gibi ... dosya oklüzyonu ve istenmeyen dosya üzerine yazma veya silme Matthias S. Benkmann tarafından more_control_and_pkg_man.txt dosyasında sadece normal dosya ve dizin izinleri manipülasyonu gerektiren, örneğin istenmeyen dosyaların üzerine yazmaktan kaçınılması gereken yapışkan bit izni gerektiren açık bir Linux numarasıyla engellenir:
3.3 Gruplar
Her paket kullanıcısı en az 2 gruba aittir. Bu gruplardan biri, tüm paket kullanıcılarının (ve yalnızca paket kullanıcılarının) ait olduğu "yükleme" grubudur. Paketlerin içine malzeme yüklenmesine izin verilen tüm dizinler yükleme grubuna aittir. Bu, / bin ve / usr / bin gibi dizinleri içerir, ancak / root veya / gibi dizinleri hariç tutar. Kurulum grubunun sahip olduğu dizinler her zaman grup halinde yazılabilirdir. Bu, paket yönetimi açısından yeterli olacaktır, ancak daha fazla hazırlık yapılmadan bu, ek güvenlik veya kontrol sağlamayacaktı çünkü her paket farklı bir paketten dosyaları değiştirebilirdi (değişiklik çıktıdan görülebilirls -l
, olsa). Bu nedenle, tüm kurulum dizinleri yapışkan niteliğini alır. Bu, kullanıcıların yeni dosyalar oluşturmasına ve dizindeki kendi dosyalarını silmelerine veya değiştirmelerine izin verir, ancak diğer kullanıcıların dosyaları değiştirilemez veya kaldırılamaz. Bu ipucunun geri kalanında, "yükleme dizini" terimi kullanıldığında, grup kurulumuna ait olan, gruba yazılabilir ve yapışkan bir dizine atıfta bulunur. IOW, <dir>
bir yükleme dizinine dönüştürmek için
chgrp kurulum && chmod g + w, o + t
Benim için basit ve zekice bir çözüm gibi görünüyor! Bu programı LFS yapımda kullandım ve çalışan bir çözüm ...