Linux Dosya Sistemi İzinlerini Deşifre Etme

Yayınlanan: 2017-02-24

Linux dosya izinleri, bazılarına gizli sayı teorisi hiyeroglifleri gibi görünebilir ve bu anlaşılabilir bir durumdur. Linux'un dosya sistemi izin modeli, UNIX'in mirasından kaynaklanmaktadır. Ancak, arkasındaki mantığı anladığınızda, bunları kavramak oldukça kolaydır.

İzin grupları ve türleri

Tüm dosya ve klasör erişim denetimi, aşağıdaki bilgiler kullanılarak dosya sisteminde tanımlanır:

  • Üç izin grubu: sahip için u , g , grup, o veya a , tüm kullanıcılar.
  • Üç izin türü: r , okuma, x , yürütme, w , yazma.

İzin türleri, bayraklar olarak adlandırılan “r”, ”x” ve “w” karakterleridir ve dosyanın veya klasörün izinlerini bir şekilde listelerseniz bu şekilde görüntülenir. Ayarlanmamış bayraklar “-” karakteri ile gösterilir. İzin grubu olanlar, birazdan inceleyeceğimiz bir dosyanın sahipliğini ve grubunu değiştiren komutlarda kullanılır.

izinleri görüntüleme

Bir GUI dosya yöneticisi kullanarak veya konsol terminalinde ls komutunun çıktısını inceleyerek bir dosya veya klasörün izinlerini görüntüleyebilirsiniz.

Terminalinizi açın ve aşağıdaki komutu yazın:

$ dokunma testi

$ ls -la testi

-rw-r–r– 1 yorgos personeli 0 Şubat 23 17:07 testi

“-rw-r–r–” dizesi, ilgilendiğimiz dosya sistemi izin bilgilerini içerir. Soldan sağa alanların geri kalanı aşağıdaki bilgileri görüntüler:

  • bu dosyaya kaç tane bağlantı var (1)
  • sahip kullanıcı kimliği (yorgos)
  • Grup kimliği (personel)
  • Bayt cinsinden dosya uzunluğu (0)
  • Oluşturulma tarihi (23 Şubat)
  • Oluşturma zamanı (17:07)
  • Dosya adı (test)

izin bitleri

9 farklı izin grubu ve türü kombinasyonu olduğunu, ancak 10 bayrak konumu olduğunu fark edeceksiniz. Birincisi dosya türü bayrağını gösterirken ikincisi izinlerin kendisini gösterir. Dosya türleri şunlar olabilir: dosyalar için “-”, sembolik bağlantılar için “l” (bunlar sadece başka bir dosyaya işaret eden dosya sistemi bağlantılarıdır) ve dizinler için “d” olabilir. Örneğimizde ilk karakter/bayrak “-” olduğu için basit bir dosyadan bahsediyoruz. Devam ederek, izinler alanını parçalayalım:

: Dosya türü (bu, l, - veya d içerebilir)

rw- : okuma ve yazma izinleri (yürütme yok). Bu izinler sahibi içindir.

r– : okuma izni, yazma ve çalıştırma izni yok. Bu izinler, bir gruba ait olan kullanıcılarla ilgilidir.

r– : okuma izni, yazma ve çalıştırma yok. Son olarak, bu izinler diğer herkesi ilgilendirir.

Yani aslında, bu sadece "bu dosya sahibi tarafından okunabilir ve yazılabilir ve diğer herkes tarafından salt okunur" anlamına gelir. Grup aynı izinleri paylaşır.

İzinleri değiştirme

Bir dosya veya klasörün izinlerini değiştirmek için yine ya bir GUI komutu kullanırsınız (bu, bu makalenin kapsamı dışındadır, bu yüzden oraya gitmeyeceğiz) veya terminalinizde belirli linux komutlarını kullanırsınız. Kullanacağımız komutun adı chmod (dosya modunu değiştir). chmod komutu, davranışını birçok farklı şekilde değiştiren çeşitli parametreleri kabul eder, ancak genel kullanımı şu şekildedir:

$ chmod <mod> <dosya>

<mod> aşağıdaki sembollerle belirtilir:

r okuma bayrağı

w yazma bayrağı

x yürütme bayrağı

u kullanıcı/sahip izni bayrağı

g grup izin bayrağı

o diğer kullanıcıların izin bayrağı

Birkaç tane daha var, ancak bunları makalemizin son bölümünde tartışacağız.

Diyelim ki gruba ait kullanıcılara yürütme izinleri vermek istiyorsunuz (ancak önce dosyanın sahibi olduğunuzdan emin olun!):

$ chown g+x testi
$ls -l testi
-rwxrwxrwx 1 yorgos personeli 0 Şubat 23 17:07 testi

Ya da belki diğer herkesi tamamen kilitlemeniz gerekir. Dosyayı okuyamaz, yazamaz veya yürütemezler:

$ chown o-rwx testi
$ls -l testi
-rwxrwx— 1 yorgos personeli 0 Şubat 23 17:07 testi

Burada, tümü “-” olarak ayarlanmamış son bayrakları görüyoruz.
Daha fazla örnek görmek istiyorsanız, aşağıdaki komutu vererek chmod için kılavuz sayfasına bakın:

$ adam chmod

Sahipler ve gruplar

Ayrıca chown komutunu kullanarak bir dosyanın dosya ve grup sahipliğini değiştirebilirsiniz .

chown komutu , davranışını bir şekilde değiştiren çeşitli parametreleri kabul eder, ancak en yaygın kullanım şudur:

# chown <sahip> <dosya>

Veya

# chown <sahip:grup> <dosya>

İlk örnek, bir dosyanın sahibini bir başkasıyla değiştirmek için kullanılır. Yine de, bir dosyanın sahipliğini değiştirmek için root erişimine sahip olmanız gerektiğini unutmayın. Yani, aşağıdakileri yürüterek:

# chown kimse testi

#ls -l testi

-rwxrwxrwt 1 kimse personel 0 Şubat 23 17:07 testi

Artık dosyanın artık 'yorgos'a değil, 'hiç kimse' kullanıcı kimliğine ait olduğu ortaya çıktı.

Benzer şekilde komut:

# chown kimse:tekerlek testi

#ls -l testi

-rwxrwxrwt 1 kimse tekerlek 0 23 Şubat 17:07 testi


Dosyanın sahipliğini hiçkimse ve grubu tekerlek olarak değiştirir .

Komut ve çeşitli parametreleri hakkında daha fazla bilgi edinmek istiyorsanız, komutu vererek chown kılavuz sayfasına bakın:

$ adam chown

Özel izinler

Yazıda bahsettiğimiz izin türleri ve gruplarının yanı sıra, “özel izinler” olarak adlandırılan birkaç tane daha var.

Bunlar aşağıdaki gibidir:

s       Kullanıcı Kimliğini Ayarla ve Grup Kimliğini Ayarla bayrağı.

t       Yapışkan bayrak.

Birincisi, chmod komutundaki “s” bayrağını olağan şekilde kullanarak ayarlanır:

$ chmod u+s testi
$ls -l testi
-rwsrwx—   1 yorgo   Personel   0 Şub 23 17:07 testi

Bu işaret aynı zamanda SUID (Kullanıcı Kimliğini Ayarla) veya SGID (Grup Kimliğini Ayarla) bayrağı olarak da adlandırılır. Bu bit ayarlanırsa, dosya sahibinin erişim haklarını devralır. Bu, dosyayı yürüten herkesin bunu sahibi olarak yaptığı anlamına gelir. SGID benzerdir, ancak dosya, grubunun erişim hakkını devralır. Bu, elbette, güvenlik sorunlarına yol açabilir, bu nedenle dikkatli olunmalıdır.

Yapışkan bit veya “t” özellikle yararlıdır. Genellikle /tmp gibi paylaşılan bir dizine ayarlandığında, orada oluşturulan dosyalar yalnızca ilgili sahipleri tarafından yeniden adlandırılabilir veya silinebilir. Yapışkan bit ayarlanmazsa, dizinin sahibinin bunlar üzerinde kontrolü yoktur.

Aşağıdaki komutu vererek bir dizini "yapışkan" hale getirebilirsiniz:

$ chmod +t /dizin

sekizli gösterim

“r” ve “w” gibi izinleri tanımlamak için bayrak kullanmanın yanı sıra sayısal değerler de kullanabilirsiniz. chmod komutu, izinlere aşağıdaki değerleri atar:

"r" = 4

"w" = 2

"x" = 1

Bu nedenle, sahibi için okuma/yazma/yürütme ve diğer herkes için okuma/yürütme, yani “-rwxr-xr-x” için bir dosya ayarlamak için sayısal değeri şu şekilde hesaplarız:

rwx = 4+2+1 = 7

rx = 4+1 = 5

Sonunda şu komutu veriyoruz:

$ chmod 755 testi
$ ls – testi
-rwxr-xr-x   1 yorgo   Personel   21 Şubat 24 02:08 testi

Alışmak için farklı izinler ve sayısal değerler kullanarak kendi başınıza pratik yapın!