Linux fayl və qovluq icazələri

Bir süredir Linux kullanıyorsanız (ve hatta OS X) muhtemelen bir "izinler" hatasıyla karşılaşacaksınız. Fakat bunlar tam olarak nedir ve neden gerekli veya yararlıdır? Şimdi içeriye bir göz atalım.

Kullanıcı İzinleri

Eskiden bilgisayarlar inanılmaz derecede pahalı olan devasa makinelerdi. Bunlardan en iyi şekilde yararlanmak için, birçok kullanıcının eşzamanlı olarak işlerini yapmasına izin veren birden fazla bilgisayar terminali bağlandı. Veri işleme ve depolama makinede yapılırken, terminallerin kendileri bir veri görüntüleme ve girme aracından biraz daha fazlasıydı. Düşünürseniz, büyük ölçüde "bulut" üzerindeki verilere nasıl eriştiğimiz; Amazon’un Cloud MP3 sistemine, Gmail'e ve Dropbox'a bakın ve yerel olarak değişiklik yapılabilse de her şeyin uzaktan depolandığını fark edeceksiniz.

(Resim: Zenith Z-19 "aptal" terminal; kredi: Ajmexico )

Bunun çalışması için, bireysel kullanıcıların hesaplarının olması gerekir. Kendilerine ayrılmış depolama alanının bir bölümüne sahip olmaları gerekir ve komutları ve programları çalıştırmalarına izin verilmelidir. Herkes, neyi yapıp yapamayacağını, sistemde nerede erişip erişemeyeceğini ve kimin dosyalarını değiştirip değiştiremeyeceğini belirleyen belirli "kullanıcı izinleri" alır. Her kullanıcı ayrıca, daha fazla erişim izni veren veya kısıtlayan çeşitli gruplara yerleştirilir.

Dosya Erişimi

Bu tuhaf, çok kullanıcılı dünyada, kullanıcıların neler yapabileceğine dair sınırları zaten belirledik. Peki ya neye eriştikleri? Her dosyanın bir dizi izni ve bir sahibi vardır. Tipik olarak dosya oluşturulduğunda bağlı olan sahip ataması, hangi kullanıcıya ait olduğunu belirtir ve yalnızca bu kullanıcı erişim izinlerini değiştirebilir.

Linux dünyasında, izinler üç kategoriye ayrılmıştır: okuma, yazma ve yürütme. "Okuma" erişimi, bir dosyanın içeriğini görüntülemeye, "yazma" erişimi bir dosyanın içeriğini değiştirmeye izin verir ve "yürütme", bir komut dosyası veya program gibi bir dizi talimatı çalıştırmaya izin verir. Bu kategorilerin her biri farklı sınıflara uygulanır: kullanıcı, grup ve dünya. "Kullanıcı" sahip anlamına gelir; "grup", sahip ile aynı grupta bulunan herhangi bir kullanıcı anlamına gelir ve "dünya", herkes ve herkes anlamına gelir.

Klasörler de bu izinlerle kısıtlanabilir. Örneğin, grubunuzdaki diğer kişilerin ana klasörünüzdeki dizinleri ve dosyaları görüntülemesine izin verebilir, ancak grubunuz dışından kimsenin görüntülemesine izin vermeyebilirsiniz. Bir tür paylaşılan proje üzerinde çalışmadığınız sürece, muhtemelen "yazma" erişimini yalnızca kendinizle sınırlamak isteyeceksiniz. Ayrıca, o klasördeki herkesin dosyaları görüntülemesine ve değiştirmesine izin veren paylaşılan bir dizin de oluşturabilirsiniz.

Ubuntu'da İzinleri Değiştirme

GUI

Ubuntu'da sahip olduğunuz bir dosyanın izinlerini değiştirmek için, dosyayı sağ tıklayın ve "Özellikler" e gidin.

Sahibin, Grubun veya Diğerlerinin okuyup yazamayacağını, salt okuyabileceğini veya hiçbir şey yapamayacağını değiştirebilirsiniz. Dosyanın yürütülmesine izin vermek için bir kutuyu da işaretleyebilirsiniz ve bu, dosyayı Sahip, Grup ve Diğerleri için aynı anda etkinleştirir.

Komut satırı

Bunu komut satırı aracılığıyla da yapabilirsiniz. İçinde dosyalar bulunan bir dizine gidin ve bir listedeki tüm dosyaları görüntülemek için aşağıdaki komutu yazın:

ls -al

Her dosyanın ve dizinin yanında, sahip olduğu izinleri özetleyen özel bir bölüm göreceksiniz. Şöyle görünüyor:

-rwxrw-r–

r "oku" anlamına gelir, içinde "yazmak" anlamına gelir ve x "yürütmek" anlamına gelir. Dizinler "-" yerine "d" ile başlayacaktır. Ayrıca değer taşıyan 10 boşluk olduğunu da fark edeceksiniz. İlkini görmezden gelebilirsiniz ve sonra 3 set vardır. İlk set sahibi için, ikinci set grup için ve son set ise dünya içindir.

Bir dosyanın veya dizinin izinlerini değiştirmek için, chmod komutunun temel biçimine bakalım.

chmod [class][operator][permission] dosyası

chmod [ugoa][+ or –] [rwx] dosyası

Bu ilk bakışta karmaşık görünebilir, ama güven bana, oldukça kolay. Önce sınıflara bakalım:

  • u: Bu sahibi için.

  • g: Bu grup içindir.

  • o: Bu diğerleri için.

  • a: Bu, yukarıdakilerin tümü için izinleri değiştirecektir.

Ardından operatörler:

  • +: Artı işareti, takip eden izinleri ekleyecektir.

  • -: Eksi işareti, izleyen izinleri kaldırır.

Hala benimle? Ve son bölüm, bir dosyanın izinlerini kontrol ettiğimiz zamanki ile aynıdır:

  • r: Okuma erişimine izin verir.

  • w: Yazma erişimine izin verir.

  • x: Yürütülmeye izin verir.

Şimdi bir araya getirelim. Aşağıdaki izinlere sahip "todo.txt" adlı bir dosyamız olduğunu varsayalım:

-rw-rw-r–

Yani, sahip ve grup okuyabilir ve yazabilir ve dünya yalnızca okuyabilir. İzinleri bunlarla değiştirmek istiyoruz:

-rwxr—–

Yani, sahibin tüm izinleri vardır ve grup okuyabilir. Bunu 3 adımda yapabiliriz. İlk olarak, kullanıcı için yürütme iznini ekleyeceğiz.

chmod u + x todo.txt

Ardından, grup için yazma iznini kaldıracağız.

chmod g-w todo.txt

Son olarak, diğer tüm kullanıcılar için okuma izinlerini kaldıracağız.

chmod o-r todo.txt

Bunları tek bir komutta da birleştirebiliriz, örneğin:

chmod u + x, g-w, o-r todo.txt

Her bölümün virgülle ayrıldığını ve boşluk olmadığını görebilirsiniz.

İşte bazı yararlı izinler:

  • -rwxr-xr-x: Sahip tam izinlere sahiptir, grup ve diğer kullanıcılar dosya içeriğini okuyabilir ve çalıştırabilir.

  • -rwxr – r–: Sahibin tüm izinleri vardır, grup ve diğer kullanıcılar yalnızca dosyayı okuyabilir (başkalarının dosyalarınızı görüntülemesini önemsemiyorsanız kullanışlıdır.

  • -rwx——: Sahibin tam izinleri vardır, diğerlerinin hiçbiri yoktur (kişisel komut dosyaları için kullanışlıdır).

  • -rw-rw—-: Sahip ve grup okuyabilir ve yazabilir (grup üyeleriyle işbirliği için kullanışlıdır).

  • -rw-r – r–: Sahip okuyabilir ve yazabilir, grup ve diğer kullanıcılar yalnızca dosyayı okuyabilir (kişisel dosyaları paylaşılan bir ağda saklamak için kullanışlıdır).

  • -rw ——-: Sahip okuyabilir ve yazabilir, diğerlerinin hiçbiri yoktur (kişisel dosyaları saklamak için kullanışlıdır).

Chmod ile yapabileceğiniz setuid ve setgid gibi başka birkaç şey daha vardır, ancak bunlar biraz derinlemelidir ve çoğu kullanıcının yine de bunları kullanması gerekmez.

Kök veya Süper Kullanıcı ve Sistem Dosyaları

Günümüzde, her zaman birden fazla kullanıcıya sahip sistemler çalıştırmıyoruz. Neden izinler konusunda hala endişelenmeliyiz?

Pekala, Unix ve türevleri - Linux, OS X ve diğerleri - kullanıcı tarafından çalıştırılanlar, bir yönetici tarafından çalıştırılanlar veya yönetici ayrıcalıkları ile çalıştırılanlar ve sistemin kendisi tarafından çalıştırılan şeyler arasında da ayrım yapar. Bu nedenle, sistemin ayrılmaz bir parçası olan şeylerin değiştirilmesi veya erişilmesi için yönetici ayrıcalıklarına ihtiyacı vardır. Bu şekilde, yanlışlıkla hiçbir şeyi mahvetmezsiniz.

Ubuntu'da, sistem dosyalarında değişiklik yapmak için "sudo" veya "gksudo" kullanarak eşdeğer Yönetici ayrıcalıklarını elde edersiniz. Diğer dağıtımlarda, siz oturumu kapatana kadar aynı şeyi etkili bir şekilde yapan "kök" veya "süper kullanıcıya" geçiş yaparsınız.

Her iki durumda da, dosya izinlerinin değiştirilmesinin programların çalışmamasına, dosya sahipliğinin istemeden kök kullanıcıya (sahip yerine) değişmesine ve sistemi daha az güvenli hale getirmesine (daha fazla izin vererek) yol açabileceğini unutmayın. Bu nedenle, gerekli olmadıkça veya ne yaptığınızı bilmediğiniz sürece dosyalara, özellikle sistem dosyalarına ilişkin izinleri değiştirmemeniz önerilir.


Kullanıcılar arasında temel bir güvenlik sistemi sağlamak için dosya izinleri mevcuttur. Nasıl çalıştıklarını öğrenmek, çok kullanıcılı bir ortamda temel paylaşımı ayarlamanıza, "genel" dosyaları korumanıza yardımcı olabilir ve sistem dosyası sahipliğinde bir sorun olduğunda size bir ipucu verebilir.

İşleri daha kolay açıklayabileceğini mi sanıyorsun? Bir düzeltme var mı? Eski günleri anmak ister misiniz? Bir ara verin ve düşüncelerinizi yorumlara yazın.

Last updated

Was this helpful?