Edinilen bilgilerden sonra POSIX sistemlerinin uyguladığı erişim kontrolleri sırası ile ele
alınabilir. Örneğin bir process’in bir dosyaya erişmek istediğini düşünelim. Erişim
algoritmasında gerçek kullanıcı ve grup ID’leri değil, etkin kullanıcı ve grup ID’leri ile ek
grup ID’leri test işlemine sokulmaktadır.
1) Erişimi gerçekleştirmek isteyen process’in etkin kullanıcı ID değeri 0 (root) ise erişim
gerçekleştirilir.
2) Dosyanın sahibinin etkin kullanıcı ID değeri ile belirtilen kullanıcı olup olmadığına
bakılır. Eğer dosyanın sahibi process’in etkin kullanıcı ID’siyle belirtilen kullanıcı ise, bu kez
dosya sahipliğinin rwx alanlarına bakılarak erişim hakkının olup olmadığı test edilir. Erişim
hakkı varsa erişim gerçekleşir, yoksa erişim reddedilir ve bir sonraki aşamaya geçilmez.
3) Process’in etkin grup ID’si ile dosyanın ilişkin olduğu grup karşılaştırılır. Eğer dosya
process’in etkin grup ID’si ile belirtilen gruba ilişkin ise dosyanın grup erişim haklarına
bakılır. Bu haklar uygunsa erişim gerçekleştirilir, değilse erişim reddedilir ve sonraki aşamaya
geçilmez.
4) Process’in ek grup ID’lerinden herhangi birisi dosyanın ilişkin olduğu gruptan mı diye
bakılır. Eğer gruptan ise dosyanın grup erişim hakları incelenir. Erişim hakları uygun ise
erişim gerçekleştirilir. Uygun değilse erişim reddedilir ve sonraki aşamaya geçilmez.
5) Bu aşamada artık process herhangi biri durumuna gelmiştir. Bu nedenle dosyanın
herhangi birine ilişkin erişim haklarına bakılır. Eğer erişim hakkı uygunsa erişim
gerçekleştirilir, değilse erişim reddedilir.
Örneğin aşağıda a isimli çalışabilen dosyanın ve b data dosyasının bilgileri verilmiştir.
-r-sr-xr-x Ali Project1 a
-r--rw-r-- Veli Project1 b
a programının b data dosyasına bir şeyler yazmak istediğini düşünelim. Grubu Project3 olan
Mehmet isimli kullanıcı login olarak a programını çalıştırabilir mi? A programı b dosyasına
yazma yapabilir mi?
1) Mehmet kullanıcısı herhangi bir kişi olarak a dosyasına erişip onu çalıştırabilir.
C ve Sistem Programcıları Derneği 12
2) A programı çalışıp process olduğunda a process’inin etkin kullanıcı ID değeri Ali etkin
grup ID değeri Project3’tür. Çünkü a çalışabilen dosyasının yalnızca user ID değeri set
edilmiştir.
3) Bundan sonra a process’inin etkin kullanıcı ID’si b dosyasının ID’si ile uyuşmadığından,
etkin grup ID’si b dosyasının ID’si ile uyuşmadığından ve b dosyasına herhangi bir kişi
yazma işlemi yapamayacağından, sonuç olarak Mehmet kullanıcı a programını çalıştırabilir,
ama a programı b dosyasına yazma yapamaz.
Eğer soruda a çalışabilen dosyasının grup ID bayrağı set edilmiş olsaydı, a process’inin etkin
grup ID değeri Project1 olacağından yazma işlemi yapılabilecekti.