Linux ve Unix için CHMOD Komutları

Kodla Büyü

KingSkrupellos

Seçkin Üye
Seçkin Üye
Mesajlar
554
CHMOD ingilizce karşılığı Change Mode ‘dur.Türkçe olarak biçimini,tarzını değiştir gibi anlamlarda kullanabiliriz.

CHMOD Unix ve Linux sistemler üzerinde dosyaların ve dizinlerin erişim yetkilerini belirlemek, değiştirmek için kullanılmaktadır. Unix ve Linux yapısı çok kullanıcılı sisteme dayanmaktadır. Sistem içindeki veya sonradan eklenen kullanıcılar haricinde, sistem üzerinde çalıştırılan servislerinde kendisine ait kullanıcıları ve grupları vardır.

Chmod ile her kullanıcı kendisine erişim izni verilen dosya ve dizinler üzerinde işlem yapma yetkisine sahip olur.

Eğer böyle bir kısıtlama olmasaydı, herhangi bir kullanıcı diğer kullanıcıların dosya ve dizinleri üzerinde yetkisiz olarak her türlü işlemi yapabilirdi.


Unix / Linux Kullanıcıları

3 kullanıcı türü bulunmaktadır.

u – user ( dosya veya dizin sahibi, yaratıcısı )
g – group ( dosya veya dizinin ait olduğu grup )
o – other ( diğerleri, user ve group haricindekiler )
a – all (ugo) ( hepsi, herkes dosya ve dizinlere erişebilir. )

CHMOD izinleri ( Chmod Permissions )


Chmod erişim izinleri herzaman rwx şeklinde sıralanmaktadır.

r – Okuma izni ( Read permission )
w – Yazma izni ( Write permission )
x – Çalıştırma izni ( Execute permission )

Bir dizin içindeki dosyaları listelemek için ls -al komutunu kullanabiliriz.


tcpsecurity.com# ls -al

total 72
drwxr-xr-x 3 root wheel 512 May 6 15:09 .
drwxr-xr-x 3 osman block 512 Apr 12 23:26 ..
-rw-r–r– 1 osman wheel 4036 May 6 15:16 index.php
-rw-r–r– 1 osman wheel 5384 May 3 21:48 style.css
drw-r–r– 1 osman wheel 719 May 6 15:15 osmanatabey
drwxr-xr-x 2 osman wheel 512 Mar 24 02:21 img
-rw-r–r– 1 osman wheel 4198 May 6 15:16 index.php
-rw-r–r– 1 osman wheel 10608 Mar 24 19:56 tcpsecurity.com
-rw-r–r– 1 osman wheel 4036 May 6 15:16 default.php
-rw-r–r– 1 osman wheel 719 May 6 15:15 chmod.html

Tür | Sahibi | Grup | Diğerleri

(Type) | (user) | (group) | (other)

- | – - – | – - – | – - -

İlk karakter dosyanın türünü göstermektedir.

Dosya tür çeşitlerini şu şekilde sıralayabiliriz :

- Normal bir dosya
d Dizin
b Özel blok dosyası
c Özel karakter dosyası
l Sembolik bağlantı dosyası
P Özel isimlendirilmiş pipe dosyası

İlk karakterden sonra gelen 3 ayrı blok soldan sağa doğru user, group ve other için verilen erişim izinlerini gösterir.

Bu erişim izinleri daima rwx sırasında yazılmaktadır. rwx içinde ( – ) simgesi bulunuyorsa o bölüme ait erişim izni verilmemiş anlamına gelir.

Bazı chmod örnekleri :

rwx Okuma, yazma ve çalıştırma erişim izinlerinin hepsi var.

rw- Okuma ve yazma izinleri var, çalıştırma için izin yok.

r-x Okuma ve çalıştırma izinleri var, yazma için izin yok.

-wx Okuma için izin yok, yazma ve çalıştırma izinleri var.

r– Sadece okuma hakkı var.

-w- Sadece yazma hakkı var.

–x Sadece çalıştırma hakkı var.

— Hiçbir erişim hakkı yok.

Yukarıda anlatılanlara göre örnek vererek inceleyelim;

drwxrwxrwx : Şeklinde listelenen, d ( dizin ) türünde u, g, o (user, group, other kullanıcılarına) rwx (okuma,yazma,çalıştırma) erişim izinlerinin tümü verilmiş.

-r–r–r– : Şeklinde listelenen, normal bir dosya türünde ve her kullanıcıya sadece r (okuma) erişim izni verilmiş.

-rw-r–r– : Şeklinde listelenen, normal bir dosya türünde ve sahibine rw (okuma yazma) hakkı verilerek grup ve diğer kullanıcılara sadece r (okuma) erişim izni verilmiş.

Chmod Erişim izinleri sayı sistemi şeklinde de gösterilebilir.


r ( Okuma izni ) = 4
w ( Yazma izni ) = 2
x ( Çalıştırma izni ) = 1

Tek bir blok için tanımlanan değerler :

000 : r (Okuma hakkı yok), w (Yazma hakkı yok), x (Çalıştırma hakkı yok) : – - – : chmod değeri 0
001 : r (Okuma hakkı yok), w (Yazma hakkı yok), x (Çalıştırma hakkı var) : – -x : chmod değeri 1
010 : r (Okuma hakkı yok), w (Yazma hakkı var), x (Çalıştırma hakkı yok) : -w- : chmod değeri 2
011 : r (Okuma hakkı yok), w (Yazma hakkı var), x (Çalıştırma hakkı var) : -wx : chmod değeri 3
100 : r (Okuma hakkı var), w (Yazma hakkı yok), x (Çalıştırma hakkı yok) : r- – : chmod değeri 4
101 : r (Okuma hakkı var), w (Yazma hakkı yok), x (Çalıştırma hakkı var) : r-x : chmod değeri 5
110 : r (Okuma hakkı var), w (Yazma hakkı var), x (Çalıştırma hakkı yok) : rw- : chmod değeri 6
111 : r (Okuma hakkı var), w (Yazma hakkı var), x (Çalıştırma hakkı var) : rwx : chmod değeri 7

Chmod izinlerinin 3 ayrı bloktan oluştuğunu söylemiştik [ user(u), group(g), other(o) ]

Sadece user için verilen tek blokluk chmod izinlerini incelediğimizde;

110 (2′lik sayı sistemi) olarak verilmiş bir sayı, 6 (8′lik sayı sistemi) sayısına denk gelmektedir. Bunun karşılığı rw- değeridir.Yani user yetkilendirmesini 6 olarak belirlemiş olduk.


Sadece grup için chmod izni belirleyelim;

100 (2′lik sayı sistemi) olarak verilmiş bir sayı, 4 (8′lik sayı sistemi) sayısına denk gelmektedir. Bunun karşılığı r- – değeridir.Yani grup yetkilendirmesini 4 olarak belirlemiş olduk.

Sadece other için chmod izni belirleyelim;

001 (2′lik sayı sistemi) olarak verilmiş bir sayı, 1 (8′lik sayı sistemi) sayısına denk gelmektedir. Bunun karşılığı – -x değeridir.Yani diğerlerinin yetkilendirmesini 1 olarak belirlemiş olduk.

Sonuç olarak : chmod 641 tcpsecurity.com olarak komutu verdiğimizde tcpsecurity.com dosyası için user, group, other kullanıcılarına ait yetkilendirmeyi yapmış oluruz. User için okuma ve yazma hakkı, grup için sadece yazma hakkı, diğerleri için sadece çalıştırma hakkı vermiş olduk.

Bir dosya ve dizinin chmod erişim iznini dosya sahibi [owner] , üst kullanıcı yetkisine sahip [superuser] ve root hakkına sahip kullanıcılar değiştirebilmektedir.


Chmod izinleri için Operatörler

- İzinleri kaldır ( remove chmod permission )

+ İzinleri ekle ( add chmod permission )

= İzinleri koy ( set chmod permission )

Bazı chmod örnekleri :

chmod +r tcpsecurity : tcpsecurity dosyasına okuma(r) izni vermiş olduk.

chmod -x osmanatabey : osmanatabey dosyasında çalıştırma(x) iznini kaldırdık.

chmod u=rw,go= tcpsecurity.html : Dosya sahibine okuma ve yazma izni verdik. Grup ve diğerleri için tüm erişim izinlerini kaldırdık.

chmod +x dosyaismi : Dosyaya tüm kullanıcılar (user,group,other) için çalıştırma izni verdik.

chmod +rw dosyaismi : Komutu veren user için okuma ve yazma izni grup ve diğerleri için sadece okuma izinlerini verdik.

chmod 0 osmanatabey.html : Dosya için tüm kullanıcılara ait erişim izinlerini kaldırdık.

chmod 666 tcp_security.pl : Tüm kullanıcılar için okuma ve yazma izni verdik.

chmod 0755 veya chmod 755 dosya_ismi : Bu komutun iki farklı şekilde yazılmış olması önemli değildir. Yaptığı görev aynıdır dosya sahibine okuma, yazma ve çalıştırma haklarını verirken grup ve diğerleri için okuma ve çalıştırma hakkı vermektedir.


chmod ugo-rwx dosyaismi : Dosyanın tüm erişim izinlerini kaldırmış olduk. chmod 0 veya chmod 000 da aynı görevi görür.

chmod go-rw tcpsecurity : Grup ve diğer kullanıcıların dosya üzerindeki okuma ve yazma hakkını kaldırdık.

chmod –R u+r resimler : Resimler isimli dizin altındaki tüm dosyalar ve dizinler için kullanıcısına okuma izni verdik. -R (recursive) parametresi ile ilgili dizin altındaki tüm dosyalar ve dizinlerin chmod erişim izni aynı şekilde değiştirilir.

chmod a+rwx ve chmod 777 dosyaismi.html : İki farklı komut fakat işlevleri aynı. Tüm kullanıcıların ilgili dosya üzerinde okuma, yazma ve çalıştırma haklarının olmasını sağlar.

chmod go+r tcpsecurity* : ( * ) joker parametresi ile tcpsecurity ile başlayan tüm dosyaların grup ve diğer(other) userler tarafından okunması iznini verir.

chmod go-rwx * veya chmod 700 * : Bir dizin içindeyken kullanılır. Kullanıldığı dizin içindeki tüm dosyalar ve alt dizinlerde grup ve diğer kullanıcılar için okuma, yazma ve çalıştırma erişim izinleri kaldırılmış olur.
 
Geri
Üst