[Gelistirici] [RFC] Kullanıcı/Grup Yönetimi

S.Çağlar Onur caglar at pardus.org.tr
28 Ağu 2006 Pzt 21:11:11 EEST


Selamlar;

Malum elimizde /etc/passwd ve /etc/group isminde iki harika dosya var. Bu 
paketler baselayout paketi ile geliyor ve baselayout paketi upgrade'ler 
sırasında yanında taşıdığı dosyaları sisteme YAZMIYOR.

Yazmamasının en büyük nedeni kullanıcının kendi kendine eklediği 
kullanıcı/grupları kaybetmemek.

Bu konu beta öncesi hatta mümkünse bu gece bir sonuca varmalı, stable'daki 
udev/hal/PolicyKit ve bunlara bağlı olarak müdürün yeni release'ler yapması 
için gerekiyorlar. PolicyKit sisteme bir kullanıcı ve grup eklemek zorunda.

Bunu nasıl yapacağımızı konuşmak için Gürer'le bir seri kopete görüşmesi 
yaptık, hızlıca seçenekleri özetleyeyim.

* İlk aklımıza gelen çözüm baselayout içindeki tüm gereksiz kullanıcı/grupları 
silmek ve bu kullanıcılara ihtiyaç duyan paketlerin postInstall betiklerinde 
sisteme ekletmek.

Bu noktada ilk sorun bu seçimin paket geliştiricisine kalması oysa bu noktada 
dağıtımın bir duruşu olmalı. Bunun üzerine statik bir listeyi paket 
geliştirme dökümanına koyalım dedik. Fakat madem static bir liste koyacağız 
neden onu kullanmıyoruz diyerek bu çözümden vazgeçtik.

* İkinci aklımıza gelen baselayout paketinin passwd ve group dosyalarını 
postInstall'unda bir şekilde sisteme _merge_ etmesiydi. Fakat bununda 
gereksiz komplek bir yapı gerektirdiğini düşündük. Ayrıca kullanıcı eklemek 
işi ÇOMAR'ın olmalıydı postInstall betiğini her ne kadar ÇOMAR çalıştırsada 
provide ettiği yöntemi kullanmış olmuyorduk. Bu da böyle yattı.

* Son çözümümüz ise baselayot paketinin şu anda olduğu gibi svn içinde 
kalması, paket geliştirisinin uid/gid ihtiyacı durumunda geliştirici e-posta 
listesine mail atması uygun bulununca bu uid/gid'in svn'de baselayout içine 
eklenmesi esasına dayanıyor yani şimdiki yönteme.

Bir farkla, baselayout paketi temizlenecek ve /etc/passwd ile /etc/group 
dosyası min. UNIX uyumluluğu için sadece gerekli kullanıcıları tutacak. 
Örneğin;

root:...
whell:...
users:...

Buraya yeni kullanıcı/grup eklenmesi gerektiğinde baselayout paketinin 
postInstall betiğine ÇOMAR'ın provide ettiği addUser methodu ile bu kullanıcı 
eklenecek. Örneğin;

comar.addUser(uid="123", name="polkit",shell="/bin/false")

Bu sayede;

* svn'deki baselayout paketi gereksiz kullanıcılardan (mesela qmail, nuts, gdm 
gibi) kurtulacak.

* Baselayout paketi upgrade sırasında merge etmekle falan uğraşmayacak 
postInstall'u işleten ÇOMAR olmayan kullanıcıları ekleyecek ve gerçekten 
ÇOMAR kullanmış olacağız

* Eski bir baselayout sürümünden bile upgrade edilse aradaki tüm diff 
postInstall betiğinde olduğu için upgrade gerçekten upgrade olacak.

Bu noktada seçimimiz bu seçenekte birleşti gibi. Bilgi olması açısından diğer 
dağıtımlar bunu nasıl yapıyor diye bir bilgi;

* Debian static liste tutuyor, merge işini kullanıcıya bırakıyor
* Gentoo static liste tutuyor, merge işini kullanıcıya bırakıyor
* SuSE ve Fedora RPM specleri içinde bildiğiniz adduser ile kullanıcı/grup 
ekliyorlar ama buna bir yöntem belirlememişler sorumluluk paket 
geliştiricisinde

Bu noktada ortada kalan tek sorun derlenme zamanında çıkıyor. Örneğin hal yada 
PolicyKit paket derlenmeden önce kullanılacak kullanıcı/grubun sistemde 
olmasını istiyor. 

Fakat ideal dünyada paket derleyecek adamın paket geliştiricisi olduğu gerçeği 
ile bu sorumluluğun zaten geliştiriciye ait olduğunu ve uid/gid gerekince 
gerekenleri kendi sistemine ekleyip, geliştirici listesine e-posta atıp bunu 
dağıtıma ekletip durumu kontrol altına almalı diye düşünüyorum. 

Aksi düşünen varsa PiSi'ye preInstall isminde bir hook eklenmesi gerektiğini 
ve ÇOMAR'ında PiSi build sürecine dahil olacağını hatırlatmak isterim. Ve bu 
durumda olan az sayıdaki paketin istisna olduğunu kabul etmeyi öneriyorum 
(daha iyi bir fikri olan yoksa)

Ve son olarak bu konuyu geçen yazdığımda kimseden ses çıkmadı, yarın akşam 9'a 
kadar gene kimseden ses çıkmazsa 3. seçeneğin kabul edildiğini varsayıp 
paketlerde gerekli değişiklikleri yapmaya başlayacağım.

Saygılar
-- 
S.Çağlar Onur <caglar at pardus.org.tr>
http://cekirdek.pardus.org.tr/~caglar/

Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: kullanılamıyor
Type: application/pgp-signature
Size: 189 bytes
Desc: kullanılamıyor
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20060828/18965a01/attachment-0002.pgp>


Gelistirici mesaj listesiyle ilgili daha fazla bilgi