-A +A
  Görüntüleme: 1619

Unix işletim sisteminde 'chmod' komutu ile dosya ve dizin haklarını nasıl değiştirebilirim?

Readspeaker

Unix üzerindeki dizin ve dosya adları "ls" komutu ile görülebilir. Ancak dosya adlarını belli tercihlerle de görebilmek mümkündür. 

-a '.' ile başlayan gizli dosyalar dahil, dizinin tüm içeriğini listeler
-l Dosyalar hakkında daha ayrıntılı bilgiler vererek listeleme yapar
(Son işlem tarihi, dosya ile ilgili izin hakları )
-t Dosyaları değişime uğrama zamanlarına göre sıralar
-R Alt dizinlerin içerikleri ile birlikte tüm dosyaları listeler
 

Unix üzerinde her dosya veya dizin için, dosya sahibi, gruptakiler ve diğerlerine verilmiş olan okuma, yazma ve çalıştırma izinleri vardır. Belli bir dosya ile ilgili verilmiş izinler "ls -l" konutu ile görülebilmektedir.

bash-2.03$ ls -l
total 100
-rw------- 1 usrname usrgrp 1156 Nov 29 14:30 dead.letter
-rw-r--r-- 1 usrname usrgrp   11 Dec 19 17:29 document1
drwx------ 2 usrname usrgrp  512 Nov 29 14:44 mail
drwxr-xr-x 5 usrname usrgrp  512 Nov 29 11:56 wwwhome

 

Yukarıdaki ifadede wwwhome ile ilgili özellikleri biraz daha detaylı incelediğimizde 7 temel sütundan oluştuğunu görürüz.

1 2 3 4 5 6 7
drwxr-xr-x 5 username usergroup 512 Nov 29 11:56 wwwhome

 

1. Sütun wwwhome dizininin okuma, yazma ve çalıştırma ile ilgili tanımlanan haklarını göstermektedir. 10 karakterden oluşmaktadır.

drwxr-xr-x ifadesinde ilk karakter "-","d" ya da "l" değerlerini alabilmekte ve sırasıyla "dosya", "dizin" veya "bağlantı" olduğunu göstermektedir.

Sonraki dokuz karakterden ilk üçü kullanıcıya, ortadaki üç karakterlik grup kullanıcının dahil olduğu gruba en sondaki üç karakterlik grup da diğer kullanıcılara verilen izin haklarını göstermektedir.

Her üçlü grupta yer alan karakterler soldan sağa doğru sırasıyla okuma, yazma ve çalıştırma (ilgili dizini açma) haklarını göstermektedir.

2. Sütun; Dosya için geçerli bağlantı sayısını gösterir. Bir dizin için bağlantı sayısı, bu dizinin içinde bulunduğu ve kendisine bağlı bulunan dizin sayılarının toplamıdır.

3. ve 4. Sütunlar; Kullanıcı adı ve kullanıcının bağlı olduğu grubu,

5. Sütun; Dosyanın büyüklüğünü veya ilgili dizin için ayrılmış karakter sayısını,

6. Sütun; ilgili dizinde yapılan son değişiklik tarihini,

7. Sütun da dizin veya dosya adını göstermektedir.

Okuma, yazma ve çalıştırma ile ilgili tanımlanan haklar sadece dosya sahibi tarafından verilmekte ya da değiştirilebilmektedir. Bir dosya veya dizine verilen izinler "chmod" komutuyla değiştirilebilir. Komutun yazımı;

chmod [izinmodu] [dosyaadi]

şeklindedir. İzin modu, aşağıdaki tabloda gösterildiği gibi sınıf, izin alma/verme ve izin karakterlerinden oluşur. İzin '+' işareti ile verilir, '-' işareti ile geri alınır. Dosya adı, izinleri değiştirilecek dosyanın adıdır. Örneğin:

bash-2.03$ chmod go-x wwwhome   1
bash-2.03$ ls -l wwwhome        2
total 102
drwxr--r-- 2 username usergroup 512 Nov 29 11:56 wwwhome

Yukarıdaki örnekte 1. satırda "wwwhome" dizini için "chmod go-x" komutu uygulanmıştır.

2. satırda ise "ls -l" komutu ile "wwwhome" dizininin izin hakları kontrol edilmiş ve "wwwhome" dizinine kullanıcı haricindeki herkesin yazma ve çalıştırma (dizin içine girebilme) izinlerinin alınmış olduğu görülebilmektedir.