Linux işletim sistemlerinde chmod ile belirlediğimiz dosya ve klasör paylaşımlarına ek olarak 3 tane daha paylaşım ayarı vardır. Bunlar sorasıyla setuid, setgid, ve sticky bit‘tir. Bunların kendi komutları yoktur ve gene chmod komutuyla bu ayarlar yapılır.
Not: Bu izin ayarları sadece executable yani çalıştırılabilir komut/dosyalarda ayarlanabilir ve dosya/komutlar C/C++ tabanlı olmalıdır. Bash scriptlerde ayarlanamaz.
- setuid :
setuid izni komutu, komuta sahip olan kullanıcı tarafından çalıştırmamızı sağlar örneğin passwd komutu root sahiplidir ve bu komutu kullandığınızda her seferinde komut /etc/shadow dosyasını güncellemesi gerektiğinden root tarafından çalıştırılır.
Kullanıcı seviyesinde özel izin vermek için aşağıdaki komut kullanılır;
chmod u+s dosyaadi
Kullanıcı seviyesinde özel izin vermek için aşağıdaki komut kullanılır;
chmod u-s dosyaadi
- setgid :
setuid’ye benzer sahip olan kullanıcı yerine group tarafından çalıştırılır, locate ve wall komutları buna örnek komutlardır.
Grup seviyesinde özel izin vermek için aşağıdaki komut kullanılır;
chmod g+s dosyaadi
Grup seviyesinde özel izini kaldırmak için aşağıdaki komut kullanılır;
chmod g-s dosyaadi
Not: Linux işletim sisteminizdeki özel ayarlanmış tüm executable’ları bulmak için aşağıdaki komut çalıştırılabilir;
find / -perm /6000 -type f
- sticky bit :
sticky bit ayalandığı dosyanın sadece sahibi tarafından silinmesine izin verir. sticky bit ayarlamak için +t parametresini chmodla kullanırız.
Ör:
chmod +t /klasöradı/