Birçok sistemde, bir kök kullanıcı veya süper kullanıcı sistemin tüm denetimine sahiptir. UNIX Tabanlı Uygulamalar için Alt Sistem (SUA), kök kullanıcıyı tanımaz. Taşınabilir İşletim Sistemi Arabirimi (POSIX) standardı geliştirildiğinde, kök kullanıcı kavramı bir yönetim konusu olarak kabul edildi. Kök kullanıcı yerine, POSIX standardı bazı işlemler için uygun ayrıcalıklar tanımlar.

Bu konuda

setuid ve setgid

setuid ve setgid düzenekleri; mekanizmaları; çalıştırıldığında programın, programı çalıştıran kullanıcı dışındaki bir güvenlik sorumlusuna ait belirli özellikleri benimsemesine olanak verir. Programın, bu özellikleri programı çalıştıran kullanıcı ile başka bir güvenlik sorumlusunun özellikleri arasında değiştirmesini sağlar.

Uygun ayrıcalıklar bundan farklıdır. setuid ve setgid düzenekleri bir uygulamanın "Kimsiniz?" sorusuna yanıt vermesini denetlerken, uygun ayrıcalıklar şu soruya yanıt verir: "Ne yapabilirsiniz?"

UNIX Tabanlı Uygulamalar için Alt Sistem ve Kimlikler

Genel UNIX ortamlarında, tüm ayrıcalıkların verildiği kesin bir kullanıcı vardır. Bu kullanıcı, genellikle root olarak adlandırılır ve uid == 0 kimliğine sahiptir. UNIX Tabanlı Uygulamalar için Alt Sistem'de, belirli bir sistemde desteklenen tüm ayrıcalıklar, bu sistemdeki Yöneticiler grubunun veya Etki Alanı Yöneticileri grubunun üyesi olan kullanıcılara verilir. Yönetici olarak oturum açmanıza gerek yoktur. Yöneticiler grubunun veya Etki Alanı Yöneticileri grubunun üyesi olan bir kullanıcı, root ayrıcalıklarına sahip olur. POSIX veya UNIX içinde tanımlanan ayrıcalıkların tümü SUA'da kullanılamaz; diğer bir deyişle, hiçbir kullanıcıya verilmeyen bazı ayrıcalıklar vardır.

Uygun ayrıcalıklar, genel olarak çeşitli işlemler için gereklidir. Bu ayrıcalıklar; dosya sistemine erişimi, diğer işlemlere sinyal göndermeyi (işlem denetimi) veya bir işlemin belirli işlemleri gerçekleştirebilme özelliğini değiştirmek için geçerli kullanıcı tanımlayıcısını (UID) veya grup tanımlayıcısını (GID) değiştirmeyi içerir.

POSIX standardına göre bir dosya, UID'yi (setuid) ve GID'yi (setgid) ayarlayacak bitleri içeren izinlere sahiptir. Bir dosyada bitlerin biri veya her ikisi de ayarlandıysa ve bir işlem bu dosyayı çalıştırırsa, işlem bu dosyanın UID'sini veya GID'sini alır. Bu düzenek dikkatli kullanıldığında, ayrıcalığı olmayan kullanıcıların, dosyanın sahibi veya grubundan daha yüksek ayrıcalıklarla programları çalıştırmasına olanak verir. Ancak, hatalı kullanıldığında, ayrıcalıksız kullanıcıların yalnızca bir yönetici tarafından gerçekleştirilmesi gereken işlemleri gerçekleştirmelerine izin vererek güvenlik tehlikeleri oluşturabilir. Bu nedenle, SUA bu mekanizmayı varsayılan olarak desteklemez. Bunun yerine, bir dosyayı setuid veya setgid bit kümesiyle çalıştırmayı denerseniz, SUA dosyayı çalıştırmaz ve ENOSETUID hata kodunu döndürür.

UNIX Tabanlı Uygulamalar için Alt Sistem'de Setuid Kurulumunda Dikkat Edilecek Noktalar

Standart POSIX davranışı gerektiren bir uygulamaya güveniyorsanız, SUA'yı dosyaları setuid veya setgid bit kümesiyle çalışacak şekilde yapılandırabilirsiniz. SUA bu şekilde yapılandırılırsa, bir işlem setuid veya setgid bit kümesine sahip bir dosyayı çalıştırdığında, SUA, dosyanın sahibi veya grubuna atanan ayrıcalıklarla yürütülen işlem için yerel güvenlik simgeleri oluşturur. Simgeler yerel olduğu için, ağdaki diğer bilgisayarlar tarafından tanınmaz. Örneğin, bu dosya Etki Alanı Yöneticileri grubunun bir üyesine ait olsa bile, işlem, etki alanındaki diğer bilgisayarlara Microsoft® Windows® ağı üzerinden geçen güvenilen erişime sahip olmaz. Bunun yerine ayrıcalıklar, yalnızca işlemin çalıştığı bilgisayarda geçerli olacaktır.

Örneğin, bir işlemin bir program dosyasını kendi setuid bit kümesiyle çalıştırdığını ve Etki Alanı Yöneticileri grubunun bir üyesine ait olduğunu varsayalım. Bu program etki alanı kullanıcısının parolasını değiştirmeyi denerse, işlemin güvenlik simgeleri yerel olduğu ve etki alanındaki diğer sistemler tarafından tanınmadığı için bu girişim başarısız olacaktır. Diğer taraftan, program yerel bir kullanıcının parolasını değiştirmeyi denerse, bu girişim, dosyanın sahibi yerel bilgisayarın Yöneticiler grubuna ait olan Etki Alanı Yöneticileri grubunun bir üyesi olduğu için başarılı olacaktır. SUA'yı dosyaları setuid veya setgid bit kümesiyle çalıştıracak şekilde yapılandırma hakkında daha fazla bilgi için, UNIX Tabanlı Uygulamalar için Yardımcı Programlar ve Yazılım Geliştirme Seti (SDK) karşıdan yükleme paketiyle birlikte gelen Yardım dosyalarına bakın.

setuid(2), setgid(2) ve chroot(2) işlevleri için, bir işlemin, sistem hesabına, yerel etki alanına yönelik yönetici hesabına veya asıl etki alanındaki yönetici hesabına geri eşleşen geçerli UID'ye sahip olması gerekir. Yerel yönetici hesabı, yalnızca aynı etki alanındaki başka bir ID'nin UID'sini veya GID'sini değiştirebilir.

chown(1), chmod(1) ve chgrp(1) için, bir hesabın, başka bir kullanıcı veya gruba ait dosyalarda make (yap) işlemleri gerçekleştirebilmesi veya başka bir kullanıcıya ait dosyanın izinlerini değiştirebilmesi için SE_BACKUP ve SE_RESTORE adlı Windows ayrıcalıklarına sahip olması gerekir. Bu izinler genel olarak, yönetici ve yedekleme işletmeni hesaplarına aittir.

Ayrıca Bkz.