Linux Dosya İzinlerini Anlamak ve Nasıl Yönetileceğini Bilmek
Linux sistemi güvenliği ve çoklu kullanıcı mimarisinin temel taşlarından biri dosya izinleri modelidir. Windows’tan farklı olarak, Linux sistemdeki her dosya ve dizin için sahiplik ve erişim kontrolünü sıkı bir şekilde uygular. Dosya izinlerini ustaca yönetmek sadece güvenlik ile ilgili değildir — sunucuları yönetmek, yazılım dağıtmak, betikler çalıştırmak ve görevleri otomatikleştirmek için gereklidir.
Linux Dosya İzinleri Modeli
Linux’taki her dosya ve dizin, üç tür kullanıcıya atanan üç tür erişim hakkına sahiptir:
| Kullanıcı Sınıfı | Açıklama |
|---|---|
| sahip | Dosyanın sahibi olan kullanıcı |
| grup | Dosyanın grubundaki kullanıcılar |
| diğerleri | Sistemdeki diğer tüm kullanıcılar |
Her sınıfa üç tür izin verilebilir:
| İzin | Sembol | Anlamı |
|---|---|---|
| okuma | r | Dosya içeriğini görüntüle / dizini listele |
| yazma | w | Dosyayı veya dizini değiştir |
| çalıştırma | x | Dosyayı çalıştır veya dizine eriş |
İzinleri ls -l ile Görüntüleme
Dosya izinlerini görüntülemek için ls -l komutunu kullanın:
ls -l myscript.sh
Çıktı:
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh
Açıklama:
- – → normal dosya
- rwx → sahip (okuma/yazma/çalıştırma)
- r-x → grup (okuma/çalıştırma)
- r– → diğerleri (sadece okuma)
İzinleri chmod ile Değiştirme
📌 Sembolik Mod:
chmod u+x myscript.sh # Add execute to user chmod g-w myscript.sh # Remove write from group chmod o=r myscript.sh # Set read-only for others
📌 Sayısal Mod:
chmod 755 myscript.sh # rwx for owner, rx for group, rx for others
| Sekizli | Anlamı |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r– |
| 0 | — |
Örnek:
chmod 644 file.txt # owner: rw-, group: r--, others: r-- chmod 700 script.sh # owner: rwx, group/others: ---
Sahipliği chown ve chgrp ile Yönetme
Dosya sahibini değiştir:
chown alice file.txt
Grubu değiştir:
chgrp devs file.txt
Her ikisini değiştir:
chown bob:admins file.txt
Değişiklikleri yinelemeli olarak uygulamak için -R kullanın:
chown -R www-data:www-data /var/www/
Özel İzin Bitleri
Linux, varsayılan davranışı değiştiren üç özel modu destekler:
1. SUID (Kullanıcı Kimliği Ayarla)
- Çalıştırılabilir dosyalara uygulanır
- sahipin ayrıcalıklarıyla çalıştırır, çağıranın değil
chmod u+s /usr/bin/passwd
🔍 ls -l çıktısı: -rwsr-xr-x
Kullanım durumu: /usr/bin/passwd, /etc/shadow’ı güncellemek için root olarak çalışmalıdır.
SGID (Grup Kimliği Ayarla) s
- Dosyalarda: dosyanın grup ayrıcalığıyla çalıştırılır
- Dizinlerde: yeni dosyalar grubu miras alır
chmod g+s /opt/project
🔍 ls -l çıktısı: drwxr-sr-x
paylaşılan geliştirme klasörlerinde yararlıdır.
Sticky Bit t
- Dizinlerde: yalnızca sahip dosyalarını silebilir veya yeniden adlandırabilir
- Kullanıcı dosyalarını korumak için /tmp’de yaygındır
chmod +t /shared/folder
ls -ld /tmpdrwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmp
umask’ı Anlamak
umask, yeni dosya/dizinler için varsayılan izinleri ayarlar:
Mevcut değeri kontrol et: umask
Yaygın değer: 0022
| Dosya | Varsayılan izinler | umask 0022 ile |
|---|---|---|
| Dosya | 666 → 644 | rw-r–r– |
| Dizin | 777 → 755 | rwxr-xr-x |
Geçici umask ayarla:
umask 0077 # Files: 600, Dirs: 700
Yinelemeli İzin Düzeltmeleri
Klasör ve dosya izinlerini ayrı ayarla:
find /my/project -type d -exec chmod 755 {} ; find /my/project -type f -exec chmod 644 {} ;
Sonuç
Linux dosya izinleri, güvenlik, çoklu kullanıcı ortamları ve otomasyon için ince ayrıntılı erişim kontrolü sağlar. İzinleri görüntüleme, değiştirme ve uygulama yöntemlerini anlamak, sunucuları güvenle yönetmenizi, verileri korumanızı ve güvenli bir şekilde işbirliği yapmanızı sağlar.
İster web uygulamaları dağıtıyor, ister bulut sunucuları yönetiyor, ister kabuk betikleri oluşturuyor olun — chmod, chown, umask ve özel izin bitleri konusunda bilgi sahibi olmak esastır.
