Anasayfa » nasıl » Linux Dosya İzinleri Nasıl Çalışır?

    Linux Dosya İzinleri Nasıl Çalışır?

    Linux'u bir süredir kullanıyorsanız (ve hatta OS X), muhtemelen bir “izinler” hatası ile karşılaştınız. Ama tam olarak ne bunlar ve neden gerekli veya faydalılar? İçeri bir bakalım.

    Kullanıcı İzinleri

    O zamanlar bilgisayarlar inanılmaz derecede pahalı olan devasa makinelerdi. Bunlardan en iyi şekilde yararlanmak için, birçok kullanıcının aynı anda işlerini yapmalarını sağlayan birden fazla bilgisayar terminali bağlandı. Makinede veri işleme ve depolama yapılırken, terminallerin kendisi de verileri görüntüleme ve girme yöntemlerinden biraz daha fazlasıydı. Eğer düşünürseniz, “bulut” üzerindeki verilere nasıl eriştiğimiz çok fazla; Amazon'un Cloud MP3 sistemi, Gmail ve Dropbox'a bakın; değişiklikler yerel olarak yapılabilirken, her şeyin uzaktan saklandığını fark edeceksiniz..

    (Resim: Zenith Z-19 “dilsiz” terminali; kredi: ajmexico)

    Bunun çalışması için, bireysel kullanıcıların hesaplara sahip olmaları gerekir. Depolama alanı için kendilerine ayrılmış bir bölüm olması ve komutlar ve programlar yürütmesine izin vermeleri gerekir. Herkes, yapabileceklerini ve yapamadıklarını, sistemde nerede olduklarını ve erişemediklerini ve dosyalarını değiştirebileceklerini ve değiştiremeyeceklerini belirten belirli “kullanıcı izinleri” alır. Her kullanıcı ayrıca daha fazla erişim sağlayan 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ği ile ilgili sınırları çoktan ayarladık. Peki ya erişebildikleri? Her dosyanın bir izni ve sahibi vardır. Genellikle dosya oluşturulduğunda bağlı olan sahip atama, hangi kullanıcıya ait olduğunu beyan eder ve yalnızca bu kullanıcı erişim izinlerini değiştirebilir.

    Linux dünyasında, izinler üç kategoriye ayrılır: okuma, yazma ve yürütme. “Okuma” erişimi, kişinin içeriğini görüntülemesine, “yazma” erişimi, dosyanın içeriğini değiştirmesine izin verir ve “yürütme”, birinin komut dosyası veya program gibi bir dizi talimatı çalıştırmasına izin verir. Bu kategorilerin her biri farklı sınıflara uygulanır: kullanıcı, grup ve dünya. “Kullanıcı” sahibi, “grup” sahibi ile aynı grupta olan herhangi bir kullanıcı anlamına gelir ve “dünya” herkes ve herkes anlamına gelir.

    Klasörler bu izinlerle de kısıtlanabilir. Örneğin, grubunuzdaki diğer kişilerin ana klasörünüzdeki dizinleri ve dosyaları görüntülemelerine izin verebilir, ancak grubunuzun dışındaki hiç kimseyi göremezsiniz. Bir tür paylaşılan proje üzerinde çalışmadığınız sürece muhtemelen "yazma" erişimini yalnızca kendinize sınırlamak isteyeceksiniz. Ayrıca, herkesin o klasördeki 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.

    Sahip, Grup veya Başkalarının okuyabilir ve yazabilir, yalnızca okuyabilir veya hiçbir şey yapmamasını değiştirebilirsiniz. Dosyanın yürütülmesine izin vermek için bir kutuyu da işaretleyebilirsiniz ve bu aynı anda Sahip, Grup ve Diğerleri için dosyayı etkinleştirir.

    Komut satırı

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

    ls -al

    Her dosya ve dizinin yanında, sahip olduğu izinleri ana hatlarıyla gösteren özel bir bölüm göreceksiniz. Bu gibi görünüyor:

    -rwxrw-r-

    r “okumak” anlamına gelir. w "yazmak" anlamına gelir ve x "yürütme" anlamına gelir. Dizinler "-" yerine "d" ile başlayacaktır. Ayrıca değeri tutan 10 boşluk olduğunu fark edeceksiniz. İlkini görmezden gelebilirsiniz, sonra 3'lük 3 set vardır. İlk set sahipler için, ikinci set grup için ve son set dünya için..

    Bir dosyayı veya müdürün izinlerini değiştirmek için chmod komutunun temel biçimine bakalım..

    chmod [sınıf] [işleç] [izin] dosya

    chmod [ugoa] [+ veya -] [rwx] dosyası

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

    • u: Bu işletme sahibi için.
    • g: Bu grup için.
    • o: Bu diğerleri için.
    • a: Bu, yukarıdakilerin tümü için izinleri değiştirir.

    Sonra, operatörler:

    • +: Artı işareti izleyen izinleri ekleyecektir.
    • -: Eksi işareti izleyen izinleri kaldıracak.

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

    • r: Okuma erişimine izin verir.
    • w: Yazma erişimine izin verir.
    • x: Yürütmeye izin verir.

    Şimdi, bir araya getirelim. Diyelim ki "todo.txt" adında ve aşağıdaki izinlere sahip bir dosyamız var:

    -rw-rw-r-

    Yani, sahibi ve grubu okuyabilir ve yazabilir ve dünya sadece okuyabilir. İzinleri şu şekilde değiştirmek istiyoruz:

    -rwxr-

    Yani, sahibinin tam izinleri var ve grup okuyabilir. Bunu 3 adımda yapabiliriz. İlk önce, kullanıcı için yürütme iznini ekleyeceğiz..

    chmod u + x todo.txt

    Ardından, grubun yazma iznini kaldıracağız..

    chmod g-w todo.txt

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

    chmod o-r todo.txt

    Bunları aynı şekilde tek bir komutta birleştirebiliriz:

    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: Sahibi tam izinlere sahip, grup ve diğer kullanıcılar dosya içeriğini okuyabilir ve yürütebilir.
    • -rwxr-r-: Sahibinin tam izinleri var, grup ve diğer kullanıcılar yalnızca dosyayı okuyabilir (dosyalarınızı başkalarının görüntülemesine aldırmazsanız kullanışlıdır).
    • -rwx-: Sahibi tam izinlere sahip, diğerleri yok (kişisel komut dosyaları için yararlı).
    • -rw-rw--: Sahibi ve grup okuyabilir ve yazabilir (grup üyeleriyle işbirliği için yararlıdır).
    • -rw-r-r-: Sahibi okuyabilir ve yazabilir, gruplandırabilir 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--: Sahibi okuyabilir ve yazabilir, diğerlerinde hiçbiri yoktur (kişisel dosyaları saklamak için yararlıdır).

    Chmod ile yapabileceğiniz birkaç şey daha var - setuid ve setgid gibi - ama biraz derinlemesine ve çoğu kullanıcının yine de onları kullanması gerekmeyecek.

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

    Günümüzde, her zaman birden fazla kullanıcısı olan sistemleri çalıştırmayız. Neden hala izinler konusunda endişelenmeliyiz?

    Eh, Unix ve türevleri - Linux, OS X, diğerleri arasında - ayrıca kullanıcı tarafından çalıştırılanlar, bir yönetici tarafından çalıştırılanlar veya yönetici ayrıcalıkları ile sistemin kendisi tarafından çalıştırılanlar arasında ayrım yapar. Bu nedenle, sistem için ayrılmaz 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 karıştırmazsınız.

    Ubuntu'da, sistem dosyalarında değişiklik yapmak için Yönetici ayrıcalıklarına denk gelmek için “sudo” veya “gksudo” kullanın. Diğer dağıtımlarda, oturumu kapatana kadar etkili bir şekilde aynı şeyi yapan “kök” veya “süper kullanıcı” ya geçersiniz.

    Her iki durumda da, dosya izinlerinin değiştirilmesinin, programların çalışmamasına, istemeden kök kullanıcı olarak (sahip yerine) dosya sahipliğini değiştirmeye ve sistemi daha az güvenli hale getirmeye (daha fazla izin vererek) yol açabileceğini unutmayın. Bu nedenle, gerekmedikçe veya ne yaptığınızı bilmediğiniz sürece, dosyaların izinlerini (özellikle de sistem dosyalarını) 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 ve sistem dosyası sahipliğinde bir sorun olduğunda ne olacağına dair bir ipucu verir..

    İşleri kolaylaştırabileceğini mi düşünüyorsun? Düzeltme var mı? Eski günleri hatırlamak ister misiniz? Mola verin ve düşüncelerinizi yorumlara ekleyin..