Nasıl çalışır
Unix ve Linux'ta her dosyanın üç sınıf için izinleri vardır: sahip kullanıcı, grup ve geri kalan ("diğerleri"). Her sınıfın üç izni olabilir: okuma (r), yazma (w) ve yürütme (x). chmod, bunları değiştiren komuttur.
İzinler iki eşdeğer biçimde gösterilir: sayısal (sekizlik) ve simgesel. Sekizlikte her sınıf 0-7 arası bir rakamdır; 4 (okuma) + 2 (yazma) + 1 (yürütme) toplamı. Simgeselde dokuz karakter olarak yazılır, örneğin rwxr-xr-x.
Baştaki dördüncü bir rakam özel bitleri denetler: setuid (4), setgid (2) ve sticky (1). Bu araç iki yönde de dönüştürür: izinleri kutularla işaretleyerek sekizliği, simgesel gösterimi ve kopyalanmaya hazır komutu alın ya da bir değer yapıştırarak yansımasını görün.
Örnekler
755rwxr-xr-xSahibi okuyabilir, yazabilir ve yürütebilir; grup ve diğerleri yalnızca okuyup yürütebilir. Dizinler ve betikler için tipiktir.644rw-r--r--Sahibi okur ve yazar; grup ve diğerleri yalnızca okur. Veri ve yapılandırma dosyalarında yaygındır.600rw-------Yalnızca sahibi okuyup yazabilir; başka kimsenin erişimi yoktur. Özel anahtarlar için önerilir.4755rwsr-xr-xİlk rakam 4, setuid'i etkinleştirir: program, dosyanın sahibinin ayrıcalıklarıyla çalışır.Kullanım senaryoları
- Bir betiğe yürütme izni vermek (chmod 755) veya hassas veriler içeren bir dosyayı kısıtlamak (chmod 600).
- Bir öğreticideki sekizlik sayı ile ls -l'nin gösterdiği arasında, bitleri elle hesaplamadan çeviri yapmak.
- Bir komutu bir sunucuda çalıştırmadan önce gerçekte hangi izinleri verdiğini anlamak.
Sık sorulan sorular
755 neden yalnızca üç rakam ve bazen neden dört rakam görünüyor?
Üç rakam kullanıcıyı, grubu ve diğerlerini temsil eder. İsteğe bağlı ve baştaki dördüncü rakam özel bitleri (setuid, setgid, sticky) denetler; 0 ise atlanır, bu yüzden 0755 ve 755 aynıdır.
rwsr-xr-t içindeki s ve t ne anlama gelir?
Özel bir biti belirtmek için x'in yerini alır. Kullanıcı bloğundaki s setuid, grup bloğundaki setgid'dir; diğerleri bloğundaki t sticky bittir. Büyük harfle (S/T) bit etkindir ama yürütme izni yoktur.
chmod 755 ile chmod u=rwx,g=rx,o=rx arasındaki fark nedir?
Hiçbiri: tam olarak aynı izinleri üretirler. Sekizlik biçim daha derli topludur, simgesel olan ise daha okunabilir. chmod ayrıca, gerisine dokunmadan u+x (sahibe yürütme ekleme) gibi göreli değişiklikleri de kabul eder.
Özel bir SSH anahtarının hangi izinleri olmalı?
600 (rw-------). SSH, grup veya diğerleri okuyabiliyorsa özel anahtarı kullanmayı reddeder. ~/.ssh klasörü genellikle 700 kullanır.