[ShellScript]Ders 11: suid, sgid

Kronos

Yönetme Gücünü Elinde Bulunduran Kişi
Yönetici
SUID ve SGID :

Küçük "s" aktif, büyük "S" pasif anlamına gelmektedir.

Bazen bir programı çalıştırmaya izniniz olsa bile problemlerle karşılaşabilirsiniz. Tabi bu durumlar genellikle güvenlik için oluşturulmuştur ve sistem kararlılığı için gereklidir.

Mesela sizin "passwd" programını kullanmaya yetkiniz vardır, bu komut ile şifrenizi değiştirebilirsiniz. Fakat bu programın çalıştıktan, yeni şifre belirlendikten sonra, yeni şifreyi yazacağı dosya üzerinde yetkiniz yok ise o zaman ne olacak? İşte burada dosyanın sahibine ait çalıştırılabilme izni "x" yerine, "s" harfi ile belirlenmiştir.

[alax@alax tux]$ ls -l /bin/passwd
root root 47224 Mar 15 2015 /bin/passwd


Gördüğünüz gibi root kullanıcısına ait olan passwd programının kullanıcıya ait ilk üçlü yetkisi "rws" şeklindedir. Son üçlüye yani diğer kullanıcıların izinlerine bakarsanız "r-x", yani okuma ve çalıştırabilme yetkisi vardır.

Unix/Linux sistemlerde şifreler "/etc/shadow" dosyasında saklanmaktadır.

[alax@alax tux]$ ls -l /etc/shadow
root root 735 Oct 14 00:13 /etc/shadow


/etc/shadow dosyasını sadece sahibi olan Root kullanıcı okuyabilir ve değiştirebilir. Fakat ben kendi şifremi değiştirmem için yeni şifreyi bu dosyaya kaydetmem lazım ki işlem başarılı olsun.

Durum:

1- Benim "passwd" komutunu çalıştırmaya yetkim var.
2- Benim /etc/shadow dosyasında değişiklik yapmaya hakkım yok.

İşte burada bu komutlar devreye giriyor. Bunların programa yüklediği anlam şudur:

Kullanıcı passwd komutunu çalıştırır. Ardından /etc/shadow dosyasına yeni şifreyi eklemeye gelince o zaman kullanıcıya ayrılmış izinler dahilinde dosyayı "root" olarak açar ve yeni şifreyi kaydeder.

Şöyle düşünelim arkadaşlar, şimdi "/etc/shadow" dosyası 10 eşit parçadan oluşan bir bütün olsun, ve bu dosyanın sahibi root. Bu 10 eşit parçadan 1 tanesi bana ait olsun. Fakat dosyanın kalanı "root" a ait. İşte burada root bana şunu diyor, 1 parça sana ait fakat diğerleri bana ait, dolayısıyla sen kendi alanında ne gibi bir değişiklik yapmak istiyorsan bana söyle ben yaparım, sen buraya girme.

Burada root sadece bir örnektir. Hangi program hangi kullanıcıya ait ise burada root o oluyor. Bizim örneğimizde passwd komutunu kullandığımız için, dosya sahibi root oldu.

Genel olarak yukarıdaki gibi bir yorumda bulunabiliriz.

Peki bu izni bir dosyaya nasıl verebiliriz?

[alax@alax tux]$ ls -l penguen.txt
alax users 0 Oct 21 21:41 penguen.txt
[alax@alax tux]$ chmod 777 penguen.txt
[alax@alax tux]$ ls -l penguen.txt
alax users 0 Oct 21 21:41 penguen.txt
[alax@alax tux]$ chmod u+s penguen.txt
[alax@alax tux]$ ls -l penguen.txt
alax users 0 Oct 21 21:41 penguen.txt


Gördüğünüz gibi önce penguen.txt dosyasının izinlerine baktık, sonra erişim izinlerini 777 olarak ayaraladık ve en son SUID değerini aktif yaptık. Tabi pasif yapmak için büyük "S" kullanmalısınız.Tabiki burada "chmod g+s penguen.txt" komutu ile dosyanın ait olduğu gruba "s" çalıştırabilme yetkisi de verebiliriz. Yada ikisini aynı anda kullanabiliriz. hem sahibi hemde grubuna "s" çalıştırma yetkisini aşağıdaki şekilde verebilir.

[alax@alax tux]$ chmod ug+s penguen.txt
[alax@alax tux]$ ls -l penguen.txt
alax users 0 Oct 21 21:41 penguen.txt
[alax@alax tux]$
 
türk porno porno porno izle eryaman escort diyarbakır escort
Üst