Tavsiye, 2024

Editörün Seçimi

Linux İzinlerini ve chmod Kullanımını Anlamak

Son birkaç aydır Linux'la ilgili bir kursa katılıyorum ve Linux'un beni sürekli karıştıran bir yönü izinlerin nasıl çalıştığıydı. Örneğin, bir kez web sunucuma bir dosya yüklerken ve bir hata alırken, web sunucum tarafından dosya izinlerini 755 olarak değiştirmem istendi.

İzinleri değiştirmek sorunu çözmeme rağmen, bunun ne anlama geldiğine dair hiçbir fikrim yoktu. Artık Linux izinlerinin o kadar da karmaşık olmadığını fark ettim, sadece sistemi anlamanız gerekir. Bu makalede, Linux izinleri hakkında yüksek düzeyde konuşacağım ve size chmod komutunu dosya ve klasör izinlerini değiştirmek için nasıl kullanacağınızı göstereceğim.

Linux İzinleri ve Seviyeleri

Linux'ta, normal olarak endişelenmeniz gereken üç izin vardır: okuma, yazma ve yürütme. Bunların üçü de açıklayıcı. Şimdi bu izinler bir dosyaya uygulandığında, seviyeler halinde uygulanırlar.

Linux'ta üç izin seviyesi vardır: sahip, grup ve diğer. Sahip, dosyaya / klasöre sahip olan kullanıcıdır, grup dosya grubundaki diğer kullanıcıları içerir ve diğer dosya sahibi veya gruptaki diğer tüm kullanıcıları temsil eder.

Okuma, yazma ve yürütme sembolik karakterler veya sekizli sayılar olarak gösterilir. Örneğin, bazı dosyaların bulunduğu bir dizinde bir ls -l yaparsanız, izinlerin sembolik karakter gösterimini görürsünüz.

İzinler aşağıdaki şekilde yazılmıştır: ilk bit bir çizgi veya d harfidir. Dash, bir dosya olduğu anlamına gelir ve d, dizin anlamına gelir. Dosya adı bir bağlantıysa, ilk bitin bir l olabileceğini de unutmayın. Daha sonra, üç bitlik üç grup var. Her gruptaki ilk bit okuma içindir, ikinci bit yazma içindir ve üçüncü bit çalıştırma içindir. İlk üç bit sahipler için, ikinci üç bit grup içindir ve üçüncü üç bit diğer içindir. İşte daha görsel bir açıklama.

Bir harf yerine kısa bir çizgi görürseniz, sahip, grup veya diğer tüm kullanıcıların bu izne sahip olmadığı anlamına gelir. Yukarıdaki örnekte, sahibi, grubu ve diğer herkes yazma ve yürütme izinlerini okudu.

Çıktıya ls -l komutundan bakarsanız, uygulama metin dosyamın aşağıdaki izinlere sahip olduğunu göreceksiniz:

 -rw-RW-rw 

Bu, herkesin sadece dosya için okuma / yazma izinlerine sahip olduğu anlamına gelir. İşte başka bir örnek:

 drwxr - r-- 

İlk bit bakıldığında, izinlerin bir dizin için olduğunu görebiliriz. Sahibi, okuma / yazma / yürütme izinlerine sahiptir, ancak grup ve diğer kullanıcılar yalnızca okuma iznine sahiptir.

Sekizli Sayı Gösterimi

Demek ki izinler Linux'ta sembollerle gösteriliyor. Aynı izinleri temsil etmenin ikinci yolu, sekizlik sayıları kullanmaktır. Daha sonra chmod komutunu kullandığımızda, sembolleri veya sekizli sayıları kullanarak izinleri değiştirebileceğinizi göreceksiniz.

Peki Linux, sekizli sayıları kullanarak okuma, yazma ve çalıştırmayı nasıl temsil eder? Temel olarak, aşağıda gösterildiği şekilde her izne yalnızca bir numara atar.

Okuma izni 4 ile gösterilir, 2 ile yazılır ve 1 ile yürütülür. Tüm yapmanız gereken, sekizli izin almak için bunları eklemektir. Örneğin, herkesin tüm izinlere sahip olduğu yukarıdaki örneği ele alalım:

 -rwxrwxrwx 

Sahibi rwx'e sahip, bu yüzden 7 + 7 elde etmek için 4 + 2 + 1 ekleyeceğiz. Grup için de aynı şeyi yapıyoruz. Son sekizlik değer 777'dir. Sadece okuma / yazma izinlerini verdiğimiz örneğe bir göz atalım:

 -rw-RW-rw 

İlk sekizlik sayı 4 + 2 olacak, çünkü okuma ve yazma ekliyoruz. İkincisi, üçüncü sekizlik sayı ile aynı olacaktır. Burada son bir sekizli değer 666 var.

Şimdi onu başka yoldan deneyelim. 755'in hangi izinleri temsil ettiğini bilmek istediğimizi söyleyin? Ayrı ayrı sayılarla parçalara ayırıp ayırmadığınızı anlamak oldukça kolaydır. İlk sayı 7'dir, ancak 4 + 2 + 1 ekleyerek elde edebiliriz, bu da sahibinin okuma / yazma / yürütme iznine sahip olduğu anlamına gelir. Beşi yalnızca 4 + 1 ekleyerek elde edilebilir; bu, grubun ve diğer kullanıcıların izinleri okuma ve yürütme anlamına gelir.

Umarım bu, Linux'taki sekizlik sayıları kullanarak izinlerin nasıl gösterileceğinin iyi bir açıklamasıdır. Genel olarak oldukça basit.

İzinleri Değiştirmek için chmod kullanma

Şimdi izinleri nasıl okuyacağımızı anladığımıza göre, nasıl değiştirebileceğimizi konuşalım. Bu amaçla kullanılacak en kolay yardımcı program, chmod komutudur. İşte nasıl çalışıyor. Komutu açıklamanın en iyi yolu bir örnek üzerinden geçmek.

Yukarıda bahsettiğimiz izinlerle başlayalım:

 -rw-RW-rw 

Sahip, grup ve diğerleri için yürütme iznini eklemek istersek, bunu iki yolla yapabiliriz. Sembol metodunu veya sekizli metodu kullanabiliriz. Sembol yöntemi için, aşağıda gösterildiği gibi, aşağıdakileri yaparız:

Tam komut

 chmod a + x dosya adı 

Sözdizimi aşağıdaki gibidir: sahibini ( u ), grubu ( g ), diğer ( o ) veya tümünü ( a ) temsil eden harf veya harfler, ardından izinleri eklemek için + işaretini veya izinleri almak için a işaretini ve ardından izin (okuma için r, yazma için w ve yürütme için x ).

Yukarıdaki örnekte, tüm kullanıcılar için yürütme iznini ekledim. Yukarıdaki ekran görüntüsünde görebileceğiniz sonuç, sahip, grup ve diğer kullanıcılar için x şeklindedir . Şimdi, yalnızca grup ve diğer kullanıcılar için yazma ve yürütme izinlerini kaldırmak istediğimi varsayalım.

Burada görebileceğiniz gibi, bunu gerçekleştirmek için aşağıdaki komutu kullandım:

 chmod go-wx dosya adı 

Grup ve diğerlerinin izinlerini değiştirmek istediğim için g ve o harflerini kullanıyorum. İzinleri kaldırmak istiyorum, bu yüzden - işaretini kullanıyorum. Son olarak yazma ve kaldırma izinlerini kaldırmak istiyorum, bu yüzden w ve x kullanıyorum . Sembol kullanımı için kullanışlı küçük bir tablo:

Yani sembol yöntemini kullanmak için hepsi bu. Şimdi biraz daha kolay bulduğum sekizli yöntemden bahsedelim. Sekizli hoş, çünkü bir seferde izinleri ekleyebilir veya kaldırabilirsiniz.

Bir dosya üzerinde aşağıdaki izinlerle başlarsak, sekizli yöntemi kullanarak bunları nasıl değiştirebileceğimize bakalım:

 -rw-RW-rw 

Yukarıda gördüğüm gibi aşağıdaki komutu kullandım:

 chmod 744 dosya adı 

Bu, temel olarak, sahibinin okuma / yazma / yürütme izni aldığını ve grubun ve diğerlerinin yalnızca okuma izni aldığını söyler. Gördüğünüz gibi, izinleri basit bir komutla eklemek veya kaldırmak kolaydır. Devam edelim ve izinleri tekrar değiştirmek istediğimi söyleyelim.

Şimdi aşağıdaki komutu kullandım, yine çok basit:

 chmod 640 dosya adı 

Burada, sahibine okuma / yazma izinleri, yalnızca grup okuma izni ve diğer gruba izin yok. İzinsiz göstermek için sıfır kullanıyorsunuz. Oldukça basit, ha?

Sonuç olarak, bu Linux izinlerine çok basit bir genel bakış ve bundan daha karmaşık hale gelebilir, ancak yeni başlayanlar için başlamak için iyi bir yer. Gelecekte daha gelişmiş izinler hakkında daha fazla makale yayınlayacağım. Herhangi bir sorunuz varsa, yorum yapmaktan çekinmeyin. Keyfini çıkarın!

Top