Ne yapar
Chmod hesaplayıcı, Unix ve Linux dosya izinlerini yaygın üç yazım biçimi arasında dönüştürür: okuma, yazma ve çalıştırma onay kutularından oluşan bir tablo, 755 gibi bir sekizlik sayı ve rwxr-xr-x gibi sembolik bir dize. Ayrıca karşılık gelen chmod komutunu sekizlik ve sembolik biçimde yazar, kimin ne yapabileceğini açıklar ve setuid, setgid ile sticky özel bitlerini destekler. Her şey tarayıcınızda çalışır.
Nasıl kullanılır
- Sahip, grup ve diğerleri için kutuları işaretleyin ya da kutuya bir mod yazın. Sekizlik (
644,0644,4755),ls -ltarzı dizeler (rw-r--r--veya başında dosya türüyle-rw-r--r--) veu=rwx,g=rx,o=ya daa+xgibi chmod ifadeleri kabul edilir. - Onay kutuları ve sonuçlar yazdıklarınızı izler; bir kutuya tıklamak modu aynı gösterimle yeniden yazar.
- Seçenekler altında dosya adını belirleyin ve modu bütün bir dizin ağacına uygulamak istiyorsanız Özyinelemeli (-R) seçeneğini açın. Hazır komutu tek tıkla kopyalayın.
Yaygın modlar
chmod 755 deploy.sh # rwxr-xr-x
chmod 644 index.html # rw-r--r--
chmod 600 ~/.ssh/id_ed25519 # rw-------
chmod 1777 /tmp # rwxrwxrwt
- 755: dizinler, betikler ve programlar için. Sahip değiştirebilir, herkes okuyup çalıştırabilir.
- 644: web sayfaları ve görseller gibi sıradan dosyalar için.
- 600: SSH anahtarları ve
.envdosyaları gibi özel dosyalar için; yalnızca sahibi okuyabilir. SSH, başkalarının okuyabildiği anahtarları reddeder. - 700 özel dizinler için, 775/664 ise bir kullanıcı grubu bir projeyi paylaştığında kullanılır.
Sayılar nasıl çalışır
Her kullanıcı sınıfı, okuma = 4, yazma = 2 ve çalıştırma = 1 toplanarak elde edilen bir sekizlik rakam alır. Bir dizinde okuma, içindeki adları listelemek; yazma, içinde dosya oluşturup silmek; çalıştırma ise dizine girmek ya da içindeki dosyalara erişmek demektir.
İsteğe bağlı baştaki rakam özel bitleri tutar: setuid = 4, setgid = 2, sticky = 1. Sembolik biçimde çalıştırma harfinin yerini alırlar: setuid ve setgid için s, sticky için t. Büyük S ya da T, özel bitin ayarlı olduğu ama çalıştırma izninin olmadığı anlamına gelir ve neredeyse her zaman bir hatadır.
Hesaplayıcı ayrıca karşılık gelen umask değerini, yani varsayılan umask’ın modu elde etmek için 777’den çıkardığı bitleri gösterir. 022 umask değeri 755 dizinler ve 644 dosyalar üretir.
SSS
› chmod 755 ne anlama gelir?
Her rakam bir kullanıcı sınıfıdır: sahip, grup ve diğerleri. 7 = okuma (4) + yazma (2) + çalıştırma (1); 5 = okuma + çalıştırma. Yani 755, sahibin her şeyi yapmasına, diğerlerinin ise dosyayı okuyup çalıştırmasına izin verir ve rwxr-xr-x olarak yazılır. Betikler ve dizinler için olağan moddur.
› 644 ile 755 arasındaki fark nedir?
644'te (rw-r--r--) çalıştırma biti yoktur, bu yüzden HTML, görseller ve yapılandırma gibi sıradan dosyalara uygundur. 755 herkese çalıştırma izni ekler; programların çalışması ve dizinlere girilebilmesi için gereklidir.
› chmod 777 neden kötü bir fikir?
777, sistemdeki her kullanıcıya dosyayı değiştirme veya yerine başkasını koyma izni verir. Bir web sunucusunda bu, ele geçirilen herhangi bir sürecin kodunuzu yeniden yazabileceği anlamına gelir. Bunun yerine sahipliği chown ile düzeltin; dizinler için 755, dosyalar için 644 kullanın.
› setuid, setgid ve sticky bit nedir?
Başa eklenen dördüncü bir sekizlik rakam oluştururlar. setuid (4) programı sahibi olarak, setgid (2) grubu olarak çalıştırır ya da bir dizindeki yeni dosyaların grubu devralmasını sağlar; sticky bit (1) ise /tmp gibi paylaşılan bir dizinde kullanıcıların başkalarının dosyalarını silmesini engeller. ls çıktısında çalıştırma konumunda s ve t olarak görünürler.