4Jul
Linux'u bir süre kullandıysanız( ve hatta OS X'de olsa bile), muhtemelen bir "izinler" hatası bulacaksınız. Ama tam olarak bunlar nedir ve neden bunlar gerekli veya yararlı?İç göz atalım.
Kullanıcı İzinleri
Gün geçtikçe bilgisayarlar inanılmaz derecede pahalı olan devasa makinelerdi. Bunlardan en iyi şekilde faydalanabilmek için, birçok kullanıcıların eş zamanlı olarak işlerini yapmalarına izin veren çok sayıda bilgisayar terminali kuruldu. Veri işleme ve depolama makinede yapılırken, terminaller de kendilerini veri görüntüleme ve girme araçlarından çok daha fazlasıydı.Bunu düşündüğünüzde, "bulut" daki verilere nasıl eriştiğimiz önemli bir şey. Amazon'un Bulut MP3 sistemine, Gmail'e ve Dropbox'a bakın; değişiklikler yerel olarak yapılabilse de her şey uzaktan saklanır.
( Resim: Zenith Z-19 "aptal" terminal; kredi: ajmexico)
Bu işe yaraması için, bireysel kullanıcıların hesapları olması gerekir. Depolama alanının bir bölümünü kendilerine tahsis etmeleri gerekir ve komutların ve programların çalıştırılmasına izin verilmelidir. Herkes, yapabilecekleri ve yapamayacakları, nerede olduklarını ve erişemediğini belirleyen "kullanıcı izinleri" ni alır ve dosyalarını kimin değiştirebileceğini ve düzenleyemeyeceğini belirtir. Her kullanıcı, daha fazla erişimi hibe eden veya kısıtlayan çeşitli gruplara yerleştirilir.
Dosya Erişimi
Bu çılgınca çok kullanıcılı dünyada, kullanıcıların neler yapabileceği konusunda zaten sınırlar belirledik. Ama ne eriştikleri hakkında? Her dosya bir dizi izin ve bir sahibine sahiptir. Genellikle dosya oluşturulduğunda bağlı kullanıcı adı, ait olduğu kullanıcıyı bildirir ve yalnızca o kullanıcının erişim izinlerini değiştirebilir.
Linux dünyasında izinler üç kategoriye ayrılır: okuma, yazma ve çalıştırma."Oku" erişimi bir dosyanın içeriğini görüntülemesine, "yazma" erişimi bir dosyanın içeriğini değiştirmesine izin verir ve "yürüt", bir 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ı gruba giren her kullanıcı anlamına gelir ve "dünya" herkesi ve herkesi ifade eder.
Klasörler, bu izinlerle de sınırlandırılabilir.Örneğin, grubunuzdaki diğer kişilerin ana klasörünüzdeki dizinleri ve dosyaları görüntülemelerine izin verebilirsiniz; ancak grubunuz dışındaki herhangi birisini göremezsiniz. Muhtemelen "yazma" erişimini yalnızca kendi kendinize sınırlamak isteyeceksiniz, ancak bir çeşit paylaşılan bir projede çalışmıyorsanız. Ayrıca, herkesin o klasöre ait dosyaları görüntülemesine ve değiştirmesine izin veren paylaşılan bir dizin oluşturabilirsiniz.
Ubuntu
GUI
'deki İzinleri Değiştirme Ubuntu'da sahip olduğunuz bir dosyanın izinlerini değiştirmek için, dosyayı sağ tıklayın ve "Özellikler" e gidin.
Sahibi, Grup veya Diğerlerinin okuyup yazabilmesini değiştirebilir, Sadece okumak veya hiçbir şey yapmak. Dosyanın yürütülmesine izin vermek için bir kutuyu da işaretleyebilirsiniz ve bu, Sahibinin, Grubun ve Diğerlerinin aynı anda etkinleştirecektir.
Komut Satırı
Bunu komut satırı üzerinden de yapabilirsiniz. Dosyalar içeren bir dizine gidin ve listedeki tüm dosyaları görüntülemek için aşağıdaki komutu yazın:
ls -al
Her dosyanın ve dizininin yanında, sahip olduğu izinlerin ana hatlarını gösteren özel bir bölüm göreceksiniz.
-rwxrw-r-
r , "okunabilir" anlamına gelir, w "yazma" anlamına gelir ve x "yürüt" anlamına gelir. Dizinler, bir "d "yerine" - "dır. Ayrıca, değeri barındıran 10 boşluk olduğunu da fark etmiş olursunuz. Birincisini yok sayabilirsiniz ve daha sonra 3 set var. İlk set sahibi için, ikinci set grup için ve son set dünya için.
Bir dosya veya dizinin izinlerini değiştirmek için, chmod komutunun temel formuna göz atalım.
chmod [sınıf] [operatör] [izin] dosya
chmod [ugoa] [+ or -] [rwx] dosyası
Bu ilk bakışta karmaşık görünebilir, ancak bana güven, oldukça kolay.Önce, sınıflara bakalım:
- u: Sahibi içindir.
- g: Bu grup içindir.
- o: Diğerleri içindir.
- a: Bu, yukarıdaki tüm izinleri değiştirir.
Sonra, operatörler:
- +: Artı işareti, takip eden izinleri ekler.
- -: Eksi işareti takip eden izinleri kaldıracaktır.
Hâlâ benimle mi? Ve son bölüm bir dosyanın izinlerini kontrol ettiğimiz zamanki gibidir:
- r: Okuma erişimine izin verir.
- w: Yazma erişimine izin verir.
- x: Yürütmeyi sağlar.
Şimdi, bir araya getirelim. Aşağıdaki izinlere sahip "todo.txt" adlı bir dosyamız olduğunu varsayalım:
-rw-rw-r-
Bu, sahibi ve grubu okuyabilir ve yazabilir ve dünya yalnızca okuyabilir. Bunlara izinleri değiştirmek istiyoruz:
-rwxr--
Yani, sahibinin tam izinleri var ve grup okuyabiliyor. Bunu 3 adımda yapabiliriz.Önce, kullanıcı için yürütme izni ekleyeceğiz.
chmod u + x todo.txt
Sonra 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ırırız.
chmod o-r todo.txt
Ayrıca bunları tek bir komutla birleştirebiliriz:
chmod u + x, g-w, o-r todo.txt
Her bölümün virgüllerle ayrılmış olduğunu ve boşluk olmadığını görebilirsiniz.
Bazı yararlı izinler şunlardır:
- -rwxr-xr-x: Sahibi tam izinlere sahiptir, grup ve diğer kullanıcılar dosya içeriğini okuyabilir ve uygulayabilir.
- -rwxr-r-: Sahibi tam izinlere sahiptir, grup ve diğer kullanıcılar yalnızca dosyaları okuyabilir( diğerlerini dosyalarınızı görüntülemeyi düşünmüyorsanız kullanışlıdır.)
- -rwx--: Sahibi tam izinlere sahiptir, diğerlerinin hiçbiri( yararlı değildir)
- -rw-rw--: Sahibi ve grubu okuyabilir ve yazabilir( grup üyeleri ile işbirliği için yararlıdır)
- -rw-r-r-: Sahibi, okuyabilir ve yazabilir, grupla ve diğer kullanıcılar yalnızcaokuma dosyası( paylaşılan bir ağdaki kişisel dosyaları depolamak için kullanışlıdır)
- -rw ---: Sahibi, okuyup yazabiliyor, diğerlerinin hiçbiri yok( kişisel dosyaları depolamak için kullanışlı)
Yapabileceğiniz diğer birkaç şey varchmod - setuid ve setgid gibi - ancak biraz derinlemesine ve çoğu kullanıcı gerçekten bunları yine de kullanmaya gerek duymayacak
Kök veya Süper Kullanıcı ve Sistem Dosyaları
Günümüzde biz şu an sistemlerini çalıştırmıyoruzBirden fazla kullanıcımız var, neden izinler hakkında endişelenmeliyiz?
İyi, Unix vetürevleri - Linux, OS X, diğerleri arasında - kullanıcı tarafından çalıştırılanlar, bir yönetici tarafından veya yönetici ayrıcalıklarıyla çalışan şeyler ile sistem tarafından işletilen şeyleri de ayırt eder. Bu nedenle, sistem için ayrılmaz olan şeylerin değiştirilmesi veya erişilmesi için yönetici ayrıcalıklarına ihtiyaç duyar. Bu şekilde, yanlışlıkla hiçbir şeyi berbat etmiyorsun.
Ubuntu'da, sistem dosyalarında değişiklik yapmak için Yönetici ayrıcalıklarının eşdeğerini kazanmak için "sudo" veya "gksudo" kullanırsınız. Diğer dağıtımlarda, "root" ya da oturum açana kadar etkin olarak aynı şeyi yapan "süper kullanıcı" ya geçersiniz.
Bu koşulların her ikisinde de, dosya izinlerinin değiştirilmesinin, programların çalışmaması, istemeden dosya sahibi olma yerine( sahip yerine) kök kullanıcıya ve sistemin daha az güvenli olmasına( daha fazla izin vererek) güvenliğine neden olabileceğine dikkat edin. Bu nedenle, gerekli olmadığı veya ne yaptığınızı bilmediğiniz sürece dosyalar için izinleri, özellikle de sistem dosyalarını değiştirmemenizi öneririz.
Kullanıcılar arasında temel bir güvenlik sistemi sağlamak için dosya izinleri mevcut. Nasıl çalıştıklarını öğrenmek, çok kullanıcılı bir ortamda temel paylaşımı ayarlamanıza, "genel" dosyalarınızı korumanıza ve sistem dosya sahipliği ile ilgili bir sorun oluştuğunda size bir ipucu vermenize yardımcı olabilir.
İşleri daha kolay açıklayabilir misin? Bir düzeltme var mı?Eski günleri hatırlamak ister misiniz? Bir mola verin ve düşüncelerinizi yorumlarınıza ekleyin.