Üye Kayıt Üye Giriş

Process’lerin Erişimlerde Kullandıkları ID Değerleri


Process’lerin Erişimlerde Kullandıkları ID Değerleri

Her process’in erişim sisteminde kullandığı beş tür ID değeri vardır.


1) Gerçek kullanıcı ID değeri (real user ID)
2) Gerçek grup ID değeri (real group ID)
3) Etkin kullanıcı ID değeri (effective user ID)
4) Etkin Grup ID değeri (effective group ID)
5) Ek grup ID değerleri (supplementory group ID)


Bu ID değerleri process fork ve exec fonksiyonları ile yaratılırken doğrudan üst process’in
process tablosundan alınmaktadır. Bu ID değerleri yetkin process’ler tarafından
değiştirilebilmektedir.


Sisteme girildiğinde shell process’i normal olarak login process’i tarafından yaratılmıştır.
login process’i username ve password kontrolünü yapıp shell process’ini çalıştırdıktan sonra,
bu process’in gerçek kullanıcı ID değerini ve gerçek grup ID değerini passwd dosyasında
belirtilen değerler ile oluşturur. Sonuç olarak shell process’inin gerçek kullanıcı ID değeri ve
gerçek grup ID değeri kullanıcı yaratılırken belirlenmiş olan ID değerleri olur. Biz shell
üzerinde kendi yazdığımız bir programı çalıştırırken aslında shell process’i komut satırında
belirtilen programı yine fork ve exec fonksiyonları ile çalıştırır. Bu durumda çalıştırılan
programın gerçek kullanıcı ve grup ID değerleri de shell process’inin aynısı olacaktır.
POSIX sistemlerinde erişim kontrolleri gerçek kullanıcı ve grup ID değerleri ile değil etkin
kullanıcı ve grup ID değerleri ile yapılır. Normal olarak çalıştırılan process’in etkin kullanıcı
ve grup ID değerleri gerçek kullanıcı ve grup ID değerleri ile aynıdır. İşte çalıştırılabilen
programların kullanıcı ve grup için iki bayrağı vardır. Eğer bu bayrakları set edilmiş olan bir
dosyadan fork ve exec işlemleri ile bir process yaratılmış ise yaratılan process’in etkin
kullanıcı ve grup ID değerleri o çalıştırılabilen dosyanın sahibinin ve grubunun ID değeri olur
(bu bayrakların set edilmiş olup olmadığı ls –l komutunda x yerine s harfinin görülmesinden
anlaşılır). Örneğin diskte passwd isimli bir program olsun. Programın erişim hakları şöyle
olsun:
-rwxr-xr-x root shadow /usr/bin/passwd
şimdi eğer bu dosyanın kullanıcı ya da grup bayrakları set edilmemiş ise bu program
çalıştırıldığında yaratılan process’in etkin kullanıcı ve grup ID değerleri bizimkinin aynısı
olacaktır ve bu programın içerisinde bazı öncelikli erişimler yapılıyor ise bu erişimler
başarısız olacaktır. İşte şimdi eğer bu dosyanın kullanıcı ID bayrağı set edilmiş olsa bu
process’in etkin kullanıcı ID değeri dosyanın sahibinin kullanıcı ID değeri yani root olacaktır.
Erişim kontrolüne etkin ID değerleri katıldığı için erişimler gerçekleşecektir. Görüldüğü gibi
çalıştırılabilen dosyaların bu özel bayrakları sanki bu dosyaları dosyanın sahibi gibi
çalıştırılmasını sağlamaktadır. Bu bayrakların set edilebilmesi için erişim hakkına sahip
olmak gerekir. Bu bayrakların set edilmesi chmod komutu ile yapılmaktadır.
C ve Sistem Programcıları Derneği 11
Özetle biz root olmasak bile root istedikten sonra root tarafından oluşturulmuş programı root
erişim hakkı ile çalıştırabiliriz.


UNIX/Linux sistemlerinde normal olarak bir kullanıcı tek bir gruba ilişkin olabilir. Yani
process’in gerçek grup ID’si bir tanedir. Ancak bir kullanıcının birden fazla gruba üye olması
faydalı bir durum oluşturduğundan “ek grup ID“ kavramı ile bir kullanıcı birden fazla gruba
aitmiş gibi de gösterilebilmektedir. Her grubun hangi kullanıcılardan oluşturulduğu /etc/group
dosyasında belirtilmiştir. Bu dosyaya bakıldığında bir kullanıcının farklı gruplarda
bulunabileceği görülmektedir. Ancak kullanıcının gerçek grubu /etc/passwd dosyasında
belirtilen gruptur. Bir shell process’i yaratıldığı zaman process’in ek grup ID’leri /etc/group
dosyasından alınarak oluşturulmaktadır. Özetle bir kullanıcının tek bir grup ID’si vardır o da
/etc/passwd dosyasında belirtilendir. Ancak kullanıcı birden fazla gruba ilişkin olabilir o da
/etc/group dosyasında belirtilmektedir. Ek grup ID’leri de erişimde kontrol işlemine
sokulmaktadır.

Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER