Chmod Nedir?

Aslıhan Kuzucu
3 min readSep 2, 2022

--

İngilizce ‘change mod’ anlamına gelen chmod, genelde Linux kullananların bildiği dosya izinlerini değiştirmek için kullanılan bir komuttur.

Linux için dosya izinleri ve dizin izinleri büyük önem taşır, dosyanın okunması, çalıştırılabilmesi ya da üzerinde değişiklik yapılabilmesi tamamen bu izinlere bağlıdır.

Bu izinlere nasıl erişebileceğimizi, nasıl değiştirebileceğimize bakalım..

Dosya ve dizin izinlerini öğrenmek için öncelikle “ls” komutuyla birlikte “l” parametresini çağırırız.

< ls -l >

Sonrasında dosya izinlerini ve dosya tipini görürüz. İzinler kısmında bulunan ilk harf dosya tipini ifade ederken, diğerleri izinleri ifade eder.

Dosya tipi ‘-’ ile başlayanlar dosyayı, ‘d’ ile başlayanlar ise dizin olduklarını belirtir.

İzinler ise 3 bölümden oluşur:

  1. Dosya sahibinin yetkileri. (rwx)
  2. Dosyanın sahibiyle aynı grupta bulunanların yetkileri. (rwx)
  3. Diğer kullanıcıların yetkileri. (rwx)

Bu harflerin karşılıkları ise şu şekildedir:

read: okuma, write: yazma, execute(x): çalıştırma yetkisi olarak tanımlanmıştır.

Örnek vermek gerekirse; dosya izni “-rw-rw-r — “ şeklinde olan bir iznin:

En baştaki ‘-’ işaretinden dosya olduğunu anlarız. Diğer izin değerlerini ise yukarıda bahsettiğimiz gibi 3 gruba ayırıp o şekilde inceleriz.

rw- = dosya sahibinin okuma ve yazmaya izninin olduğunu,

rw- = dosya sahibiyle aynı grupta bulunanın da okuma ve yazmaya yetkisinin olduğunu,

r — = diğer kullanıcıların ise sadece okumaya izninin olduğunu anlayabiliriz.

Peki bu izinleri nasıl değiştiririz?

Bu izinleri değiştirmek için “chmod *** <dosya>” gibi bir komut kullanarız. *** — > bunların ne anlama geldiğini şimdi açıklayacağım.

İlk rakamı temsil edecek olan ilk yıldız, dosyanın sahibinin izinleri, ikinci yıldız dosyanın sahibiyle aynı grupta bulunanların izinlerini, üçüncü yıldız ise diğer kullanıcıların yetkilerini ifade eder.

Örnek verdiğimde burası daha anlaşılır olacaktır.

En bilinen “chmod 777” komutu, dosya sahibi, dosya sahibiyle aynı grupta bulunan ve diğer kullanıcılara bütün yetkilerin (read-write-execute) verildiği komuttur.

Peki neden 777?

Binary olarak, bilgisayar dünyasında doğru ya da olumlu olarak bilinen 1 rakamını izinler için kullanırsak; 111 yani read write ve execute yetkilerinin hepsinin verildiği komut için “111” komutu decimal olarak 7 ye eşittir. İşte yedi aslında binary olarak tüm izinlerin verildiği “111” değerinin 7 ye eşit olmasından kaynaklanır.

Peki neden üç tane 7?

Üç tane 7 olmasının sebebi ise 3 farklı kullanıcı çeşidinin olmasından kaynaklanıyor. Aslında ilk “7” yazının başında da bahsettiğim gibi, dosya sahibinin yetkilerini ifade ederken, ikinci 7 dosya sahibi ile aynı grupta olanları, diğer 7 ise diğer kullanıcıların decimal olarak izinlerini ifade ediyor.

İzinler ve chmod ile daha fazla bilgi almak isteyen olursa diye bir link bırakıyorum..

https://catcode.com/teachmod/

--

--

Aslıhan Kuzucu
Aslıhan Kuzucu

Written by Aslıhan Kuzucu

Curious computer engineer interested in cyber security👩‍💻

No responses yet