Linux'da bir dosya veya dizin için üç izin tipi bulunur:
- Okuma (Read - r) : Dosya veya dizin içeriğini görebilme yetkisi
- Yazma (Write - w) : Dosya veya dizin içeriğini değiştirme yetkisi
- Çalıştırma (Execute - x) : Dosya içeriği çalıştırılabilen bir dosya ise çalıştırma yetkisi
Bir dosya içinde üç tür sahiplik olabilir.
- Dosya veya dizini yaratan kullanıcı
- Dosya veya dizini yaratan kullanıcının grupları
- Dosya veya dizini yaratan kullanıcı ve grupları dışındaki kullanıcı ve gruplar
Bir dosyanın izin ve sahiplik bilgileri ls -l komutu ile görülebilir. Örnek bir içerik :
-rwxrw-r--. 1 testuser testgroup 1468 Dec 26 18:05 test.sh
Buradaki -rwxrw-r-- ifadesi izinlerini belirtmektedir. İlk karakter dosyanın normal dosya mı bir symbolic link içeren bir dosya mı olduğunu belirtmektedir. İkinci ve beşinci karakterler dosyanın sahibinin yetkilerini belirtir. rwx ifadesi dosya sahibinin (testuser adı) hem okuma, hem yazma hem de çalıştırma yetkisi olduğu anlamına gelir. rw- ifadesi ise grubun yetkilerini belirtir. testgroup adındaki grubun hem okuma, hem yazma yetkisi olduğu ancak çalıştırma yetkisinin olmadığını belirtmektedir. Son üç karakter ise kullanıcı ve grup dışındaki kullanıcıların ve grupların yetkisini belirtir. r-- ifadesine göre sadece okuma yetkisi verilmiştir.
chmod, Linux'da bir dosyanın izin (permission) ayarlarını değiştirmek için kullanılan bir komuttur. Bu komut üç kullanıcı türüne, üç farklı izini ayarlamak için kullanılır.
Bir dosya veya dizinin sahiplik durumu dört farklı şekilde verilebilir :
Kod | Kullanıcı Tipi | Açıklama |
u | Owner | Dosya veya dizinin sahibi kullanıcı |
g | Group | Dosya veya dizinin sahibi grup |
o | Others | Ana kullanıcı ve grup dışındaki kullanıcı ve gruplar için |
a | All | Tüm tiplerin izinlerini ayarlamak için kullanılır |
İzin tipleri ise şu şekildedir :
Harf | İşlem | Açıklama |
r | Read | Okuma, görme |
w | Write | Yazma, değiştirme |
x | Execute | Çalıştırma |
Bir sahibin izinlerine ekleme yapılabilir, izin çıkarılabilir veya tamamen değiştirilebilir:
İşaret | Açıklama |
+ | İzin ekleme |
- | İzin silme |
= | İzin ayarlarını yer değiştirme |
Örneğin aşağıdaki gibi bir dosya ve yetkisi olsun :
-rw-r-----. 1 testuser testgroup 0 Apr 22 14:19 test.log
Burada testuser adlı kullanının rw- şeklinde belirtildiği gibi okuma ve yazma yetkisi vardır. testgroup adlı grubun ise sadece okuma yetkisi vardır. testuser ve testgroup dışındaki kullanıcı ve grupların ise bu dosyaya hiç bir şekilde erişme yetkisi yoktur.
Örneğin aşağıda gruba yazma yetkisini ekliyoruz:
chmod g+w test.log
Bu komut sonrası yetkilerin aşağıdaki gibi değiştiği görülebilir :
-rw-rw----. 1 testuser testgroup 0 Apr 22 14:19 test.log
Numara Kullanımı
chmod işlemlerini numerik değerler kullanabilirsiniz. Örneğin izinlerin numara karşılığı bu şekildedir :
- Değer İzin
- 4 Read (Oku)
- 2 Write (Yazma)
- 1 Execute (Çalıştırma)
- 0 İzin yok
chmod kullanılırken kullanıcı+grup+diğer şeklinde üç sayı yan yana verilerek yetkiler düzenlenebilir. Ve izin değerleri toplanılarak iki izin birden verilebilir. Örneğin 6 (4+2) sayısı rw yetkisi demektir. 5 (4+1) sayısı ise okuma + çalıştırma yetkisi içindir. Aşağıda bir kullanım olsun
chmod 674 test.log
Kullanıcıya 6 (rw), gruba 7 (rwx) ve diğerlerine ise 4(rx) yekisi verilmiş olacaktır. Örneğin
chmod 600 test.log
gibi bir komut sadece kullanıcıya okuma ve yazma yetkisi verir. Diğerlerinden tüm yetki kaldırılmış olunur :
-rw-------. 1 testuser testgroup 0 Apr 22 14:19 test.log