Linux Yetkilendirmeler (Linux Permissions)

Hepimiz Linux kullanırken permission denied gibi hatalar almışızdır. Bu tür hataları çözmek veya hataya baştan düşmemek için Linux’un kullanıcı, grup, sahiplik (owner) ve file mode kavramlarını iyi anlamalıyız. Bu yazımızda dosya modu (file mode) kavramı ve chmod ile file mode nasıl düzenlenir onu ele alacağız. Sonrasında örnekler yapacağız.

Linux dünyasında bir kullanıcı bir dosya veya dizine sahip olabilir. Bu durumda, kullanıcının bu dosya ve dizine erişimi kontrol yetkisi olur.

id: Kullanıcının kimliğini gösterir.

erkan@vm:~\$ id
uid=1000(erkan) gid=1000(erkan) groups=1000(erkan), 4(adm), 24(cdrom), 27(sudo), 30(dip), 46(plugdev), 113(lpadmin), 128(sambashare)

Linux’da user ve group ile ilgili işlemler sırasıyla /etc/passwd ve /etc/group dosyalarının güncellenmesiyle yapılır. Hatırlayalım Linux’da herşey metinden ibaret.
Her dosyanın yetkisi 10 karakterden oluşan bir dizi ile belirlenir.

erkan@vm:~\$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2240 Tem 31 14:39 /etc/passwd
Şu rwx- Şeklinde Görülen Anlaşılmaz İşaretler

ls -l komutuyla dizin listelediğimizde satır başında her dosya veya dizine ait -rxw-r- vb. işaretlemeler görmüşsünüzdür. İşte bu işaretleri daha iyi anlamak adına aşağıdaki şekli oluşturdum. Yukarıdaki 10 karakter dosya/dizin erişim yetkileri özelliklerini belirtir ve aşağıdaki şekilde gösterildiği gibi dört gruba ayrılır.

Bir dosya veya dizine üç çeşit erişim yetkisi belirlenmiştir: okuma (r), yazma (w) ve çalıştırma (x)

İlk karakter dosya türünü diğer 9 karakter ise erişim modunu belirtir. İlk karakteri çıktıktıktan sonra kalanları üçerli gruplar olarak algılamaya çalışırsak çok daha kolay anlaşılacaktır. İlk üçlü sahibinin, ikinci üçlü grubun, son üçlü ise bunların haricindeki herkesin erişim yetkilerini düzenliyor.

İlk karakter olan dosya türü çeşitleri şöyledir:

– : Regular file
d : Dizin
l : Sembolik link
c : Karakter özgü dosya
b : blok özgü dosya

Üçerli gruplar halinde olmak üzere kalan dokuz karakterin erişim modu özellikleri ve anlamı:

r : Dosyayı aç ve okur. Dizinleri açar ve içindekileri görür.
w : Doayayı açar değiştirir. İsmini değiştiremez. Dosyayı silemez.
x: Bir dosyaya program gibi çalışma yetkisi verir.

Örnekler:

-rwx------ : Normal dosya. Sahibi tarafından okunabilir, yazılabilir ve çalıştırılabilir. Onun dışında hiç kimse birşey yapamaz.
-rw------- : Normal dosya. Sahibi tarafından okunabilir, içeriği değiştirilebilir. Onun dışında hiç kimse birşey yapamaz.
-rw-r--r-- : Normal dosya. Sahibi tarafından okunabilir, içeriği değiştirilebilir. Bu dosyaya sahip olan grup üyeleri okuyabilir. Kalan herkes okuyabilir.
drwxrw-r--: Dizin. Sahibi tarafından okunabilir, yazılabilir ve çalıştırılabilir. Grup üyeleri okuyabilir ve yazabilir. Bunların dışındakiler sadece okuyabilir.

Dosyanın Modunu Değiştirmek chmod

Yukarıda bahsettiğimiz yetkiler chmod komutuyla düzenlenir. Bu düzenlemeyi dosyanın sahibi ve superuser yapabilir. chmod ile yetki düzenlemenin en yaygın yollarından biri chmod’u takiben argüman olarak yazılan sekizlik sistemde üç adet rakamdır. Bu rakamlar 0 ile 7 arasında değer alır (8’li sistemin tabiatı gereği). Her bir rakam sırasıyla dosyanın sahibine, gruba ve kalan herkese ait yetkileri belirler. Her bir rakam üçlü blok olarak ne tür bir yetki karşılığına geliyor görelim:

0 : --- | 1 : --x | 2 : -w- | 3 : -wx

4 : r-- | 5 : r-x | 6 : rw- | 7 : rwx

Örnekler:

Bu yazı için oluşturduğumuz çalışma diznimiz olan lnx_komutlari diznimizin içine girelim ve içinde ne var ne yok listeleyelim:

erkan@vm:~\$ cd lnx_kmtlari/
erkan@vm:~/lnx_kmtlari\$ ls
ataturk_bilim_sozleri.txt  dir1  dir1-sembolik  dir2  dir3  sifre  sifre-semblolik

ataturk_bilim_sozleri.txt dosyamız üzerinde yukarıdaki açıklama ve örnek şekle göre chmod uygulayalım. Öncelikle dosyanın sahibine (erkan kullanıcısı) okuma ve yazma yetkisi verelim. Grup üyeleri ve diğer herkes hiç bir yetkiye sahip olmasın.

erkan@vm:~/lnx_kmtlari\$ chmod 600 ataturk_bilim_sozleri.txt 
erkan@vm:~/lnx_kmtlari\$ ls -l ataturk_bilim_sozleri.txt 
-rw------- 1 erkan erkan 840 Eyl 17 14:00 ataturk_bilim_sozleri.txt

Dosya sahibi (erkan) okuma, yazma ve çalıştırma yetkisi alsın ancak grup üyeleri ve diğer herkes avucunu yalasın.

erkan@vm:~/lnx_kmtlari\$ chmod 700 ataturk_bilim_sozleri.txt 
erkan@vm:~/lnx_kmtlari\$ ls -l ataturk_bilim_sozleri.txt 
-rwx------ 1 erkan erkan 840 Eyl 17 14:00 ataturk_bilim_sozleri.txt

Şimdi herkese adil davranalım ve herkese okuma ve yazma/değiştirme yetkisi verelim:

erkan@vm:~/lnx_kmtlari\$ chmod 666 ataturk_bilim_sozleri.txt 
erkan@vm:~/lnx_kmtlari\$ ls -l ataturk_bilim_sozleri.txt 
-rw-rw-rw- 1 erkan erkan 840 Eyl 17 14:00 ataturk_bilim_sozleri.txt

Sahibine full yetki diğerleri sadece okusun ve değiştirsin/yazsın:

erkan@vm:~/lnx_kmtlari\$ chmod 766 ataturk_bilim_sozleri.txt
erkan@vm:~/lnx_kmtlari\$ ls -l ataturk_bilim_sozleri.txt
-rwxrw-rw- 1 erkan erkan 840 Eyl 17 14:00 ataturk_bilim_sozleri.txt

Bugün cömertliğim tuttu alın hepinize full yetki!

erkan@vm:~/lnx_kmtlari\$ chmod 777 ataturk_bilim_sozleri.txt
erkan@vm:~/lnx_kmtlari\$ ls -l ataturk_bilim_sozleri.txt
-rwxrwxrwx 1 erkan erkan 840 Eyl 17 14:00 ataturk_bilim_sozleri.txt

Görüşmek dileğiyle…

Yazar Hakkında
Toplam 180 yazı
Erkan ŞİRİN
Erkan ŞİRİN
10 yılı aşkın süredir yurtiçi ve yurtdışında sektörde büyük veri mühendisliği, platform yönetimi ve makine öğrenmesi ile ilgili çalışmalar yürütmekte ve aynı zamanda birçok kurum ve şirkete danışmanlık ve eğitimler vermektedir. Çalışma alanları: Data ve MLOps platformları, gerçek zamanlı veri işleme, değişen veriyi yakalama (CDC) ve Lakehouse.
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara