14. Kısım - Kimin Yetkisi Var? #
GİRİŞ #
Linux sistemindeki dosyaların her zaman bir “izin” seti vardır. Bu izinler, kimin erişebileceğini ve ne tür erişim sağlayabileceğini belirler. Daha önce de bu izinlerle karşılaştınız – örneğin, sıradan bir kullanıcı olarak /var/www dizinine doğrudan dosya yükleyemediniz veya kök dizinde (/) yeni bir klasör oluşturamadınız.
Linux’un izin sistemi oldukça basittir, ancak bazı ince ve kendine özgü yönleri vardır. Bugün bu sistemin temel kavramlarına giriş yapacağız.
KAYNAKLAR bölümündeki materyalleri detaylıca incelemeniz gerçekten çok faydalı olacaktır!
BUGÜNKÜ GÖREVLERİNİZ #
- Bir dosyanın sahipliğini kök kullanıcıya atayın.
- Dosya izinlerini değiştirin.
SAHİPLİK (Ownership) #
Önce dosya sahipliğini inceleyelim. Linux’taki her dosya, bir kullanıcı ve bir grup tarafından sahiplenilir. Örneğin şu çıktıyı inceleyelim:
-rw------- 1 steve staff 4478979 6 Feb 2011 private.txt
-rw-rw-r-- 1 steve staff 4478979 6 Feb 2011 press.txt
-rwxr-xr-x 1 steve staff 4478979 6 Feb 2011 upload.bin
Bu çıktıya göre dosyalar “steve” kullanıcısına ve “staff” grubuna aittir. “steve” ya da “staff” grubuna üye olmayan diğer tüm kullanıcılar “other” (diğer) olarak kabul edilir. Bu “diğer” kullanıcılar belirli izinlere sahip olabilirler, ancak dosyalar üzerinde sahiplik hakları yoktur.
Bir dosyanın sahipliğini değiştirmek için chown
komutunu kullanabilirsiniz. Örneğin:
sudo chown kullanıcı_adi dosya
Kullanıcı ve grup sahipliğini aynı anda değiştirmek için:
sudo chown kullanıcı:grup dosya
Yalnızca grup sahipliğini değiştirmek için chgrp
komutunu kullanabilirsiniz:
sudo chgrp grup dosya
Önceki derste oluşturduğunuz yeni kullanıcılarla giriş yaparak ana dizinlerinde birkaç dosya oluşturun. Ardından bu dosyaları ls -l
komutuyla listeleyerek sahiplik bilgilerini inceleyin.
İZİNLER (Sembolik Gösterim) #
İzinleri anlamak için -rw-r--r--
gibi bir çıktıyı inceleyelim. (İlk -
karakterini şimdilik yok sayalım.) Bu dizgi, dosyanın kullanıcı (user), grup (group) ve diğer kişiler (other) için verilen izinlerini gösterir. Bu üçlü gruba UGO denir.
Örneğin yukarıdaki listede:
- private.txt: Sadece “steve” kullanıcısının okuma ve yazma (
rw
) izni var. Grup ve diğer kişiler için izin verilmemiş. - press.txt: “steve” ve “staff” grubu dosya üzerinde okuma ve yazma iznine sahip. Diğer herkes ise yalnızca okuma iznine sahip.
- upload.bin: “steve” dosyayı okuyabilir, yazabilir ve çalıştırabilir (
rwx
). Grup ve diğer kullanıcılar ise yalnızca okuma ve çalıştırma iznine sahip.
Bir dosyanın izinlerini değiştirmek için chmod
komutunu kullanabilirsiniz. Örneğin, ana dizininizde vim
ile bir metin dosyası (tuesday.txt) oluşturun ve içeriğini görüntüleyin:
cat tuesday.txt
Dosyanın izinlerini listelemek için:
ls -ltr tuesday.txt
Örnek çıktı:
-rw-rw-r-- 1 ubuntu ubuntu 12 Nov 19 14:48 tuesday.txt
Bu dosya, “ubuntu” kullanıcısına ve grubuna aittir. Kullanıcı ve grup dosyaya yazabilir, ancak diğer kullanıcılar yalnızca okuyabilir.
İZİNLERİ DEĞİŞTİRME #
Şimdi kullanıcı ve grubun dosyaya yazma iznini kaldırın:
chmod u-w tuesday.txt
chmod g-w tuesday.txt
Diğer kullanıcıların okuma iznini kaldırın:
chmod o-r tuesday.txt
Değişiklikleri kontrol etmek için:
ls -l tuesday.txt
Örnek çıktı:
-r--r----- 1 ubuntu ubuntu 12 Nov 19 14:48 tuesday.txt
Artık dosya, sahibi tarafından bile düzenlenemeyecek durumda. Ancak sahibi olarak, vim
veya nano
ile düzenleyip :w!
komutunu kullanarak zorla kaydedebilirsiniz. İzinleri geri vermek için:
chmod u+w tuesday.txt
İLERLEMENİZİ PAYLAŞIN #
Kendi ana dizininizde secret.txt adında bir dosya oluşturun ve kullanıcı, grup ve diğer kişiler için tüm izinleri kaldırın. Ardından dosyayı düzenlemeyi deneyin ve sonuçları gözlemleyin.
EK BİLGİLER #
Eğer bu konular size tanıdık geliyorsa, Linux ACL’lerini incelemek isteyebilirsiniz:
Ayrıca SELinux ve AppArmor konularına göz atabilirsiniz:
- SELinux Man Sayfası
- SELinux Kullanıcı ve Yönetici Rehberi
- SELinux Kullanımı
- AppArmor ile Güvenli Ubuntu
KAYNAKLAR #
- Linux’ta chown Komutunu Kullanma
- chown ve chgrp Arasındaki Fark
- Linux Dosya İzinleri Açıklaması
- Dosya İzinleri ve Öznitelikleri
- chmod Eğitim Rehberi
- Umask Nedir ve Nasıl Çalışır?
Bazı haklar saklıdır. Lisans koşullarını buradan inceleyin.