Linux'ta dosya izinleri başta can sıkar ama aslında temel mantığı oturunca çok basit. İzinler üç gruba ayrılır: sahibi (owner), grubu (group) ve diğerleri (others). Her grup için okuma (r=4), yazma (w=2) ve çalıştırma (x=1) hakları var. Bunları sayısal olarak toplayıp kullanıyorsun.
Mesela
Sahipliği değiştirmek için
En sık yapılan hata her şeye 777 vermek. Güvenlik açısından hiç hoş değil, mümkünse ihtiyacın kadar izin ver. Ben genelde 755 veya 644 kullanırım, script'lerde 755 yeter.
Bir de
Dizinlerde x izni önemli, yoksa içine giremezsin. Dizinler için en az 755 vermen gerek.
Sayısal kullanım bence daha hızlı, sembolik uzun geliyor bazen. Bir de setuid, setgid gibi özel izinler var ama onu sonra anlatırım, şimdilik bu kadar yeter.
Mesela
chmod 755 dosya dediğinde sahibine 7 (rwx), gruba 5 (r-x), diğerlerine 5 (r-x) vermiş oluyorsun. Sembolik kullanım da var: chmod u+x dosya sadece sahibine çalıştırma ekler.Sahipliği değiştirmek için
chown kullanılır. chown kullanici:grup dosya şeklinde. Sadece kullanıcıyı değiştirmek için chown kullanici dosya yazman yeterli. chgrp ile sadece grubu da değiştirebilirsin ama chown iş görür.En sık yapılan hata her şeye 777 vermek. Güvenlik açısından hiç hoş değil, mümkünse ihtiyacın kadar izin ver. Ben genelde 755 veya 644 kullanırım, script'lerde 755 yeter.
Bir de
ls -l çıktısını okuyabilmek lazım. -rwxr-xr-x gibi bir şey görürsün, ilk karakter dosya türü, sonraki 9 karakter sırayla sahip/ grup/ diğerleri. Çizgi (-) izin yok demek.Dizinlerde x izni önemli, yoksa içine giremezsin. Dizinler için en az 755 vermen gerek.
Sayısal kullanım bence daha hızlı, sembolik uzun geliyor bazen. Bir de setuid, setgid gibi özel izinler var ama onu sonra anlatırım, şimdilik bu kadar yeter.