Linux/Unix'te Dosya İzinleri: Okuma, Yazma ve Değiştirme İşlemleri
⚡ Akıllı Özet
Linux ve Unix'te dosya izinleri, her dosyanın kimler tarafından okunabileceğini, yazılabileceğini ve çalıştırılabileceğini kontrol ederek, çok kullanıcılı bir sistemi iki katman üzerinden korur: kullanıcıyı, grubu ve diğerlerini atayan sahiplik ve okuma, yazma ve çalıştırma izin bitleri.

Dosya izinleri Linux Unix, her bir dosyayı kimin okuyabileceğine, değiştirebileceğine veya çalıştırabileceğine karar verir; bu da paylaşımlı, çok kullanıcılı bir sistemin güvenliğini sağlar. Bu sayfa, dosya sahipliği, okuma, yazma ve çalıştırma izinleri ve bunları değiştiren komutlar hakkında bilgi vermektedir.
Linux, aynı anda birçok kullanıcının erişebileceği çok kullanıcılı bir işletim sistemi olan Unix'in bir klonudur. Linux, herhangi bir değişiklik yapılmadan ana bilgisayarlarda ve sunucularda da kullanılabilir. Ancak bu, istenmeyen veya kötü niyetli bir kullanıcının önemli verileri bozabileceği, değiştirebileceği veya silebileceği için güvenlik endişelerini artırır. Etkin güvenlik için Linux, yetkilendirmeyi iki seviyeye ayırır:
- Mülkiyet
- Izin
Linux'ta dosya izinleri ve sahipliği kavramı çok önemlidir. Burada, Linux izinlerini ve sahipliğini açıklayacak ve her ikisini de ele alacağız. Sahiplikle başlayalım.
Linux Dosya Sahipliği
Unix/Linux sisteminizdeki her dosya ve dizine aşağıda verilen üç tür sahip atanır. Aşağıdaki şema, sahipliğin kullanıcıya, gruba ve diğerlerine nasıl eşlendiğini göstermektedir.
kullanıcı
Kullanıcı dosyanın sahibidir. Varsayılan olarak dosyayı oluşturan kişi dosyanın sahibi olur. Bu nedenle kullanıcıya bazen sahip de denir.
Grup
A kullanıcı grubu Bir grup birden fazla kullanıcı içerebilir. Bir gruba ait tüm kullanıcılar, dosyaya aynı Linux grup izinlerine sahiptir. Diyelim ki, bir projede birçok kişinin bir dosyaya erişmesi gerekiyor. Her kullanıcıya manuel olarak izin atamak yerine, tüm kullanıcıları bir gruba ekleyebilir ve dosyaya grup izni atayabilirsiniz; böylece yalnızca bu grup üyeleri, başka hiç kimse dosyayı okuyamaz veya değiştiremez.
Diğer
Dosyaya erişimi olan diğer tüm kullanıcılar. Bu kişi dosyayı oluşturmamış veya dosyaya sahip olabilecek bir kullanıcı grubuna ait değildir. Pratikte, bu herkes anlamına gelir. Bu nedenle, başkaları için izin ayarladığınızda, buna "dünya için izin ayarlama" da denir.
Şimdi büyük soru ortaya çıkıyor: Linux, bir kullanıcı 'A'nın başka bir kullanıcı 'B'nin hayati bilgilerini veya verilerini içeren bir dosyayı etkilemesini engelleyecek şekilde bu üç kullanıcı türünü nasıl ayırt ediyor? Bu, sizin bilgisayarınızda çalışan bir meslektaşınızın size erişmesini istememek gibidir. Linux bilgisayar Resimlerinizi görüntülemek için. İşte burada izinler devreye giriyor ve kullanıcı davranışını tanımlıyor.
Linux'taki izin sistemini anlayalım.
Linux Dosya İzinleri
Unix/Linux sisteminizdeki her dosya ve dizin, yukarıda bahsedilen üç sahip için tanımlanmış şu üç izne sahiptir.
- Okuyun: Bu izin size bir dosyayı açma ve okuma yetkisi verir. Bir dizin üzerindeki okuma izni ise içeriğini listeleme olanağı sağlar.
- Yazmak: Yazma izni, bir dosyanın içeriğini değiştirme yetkisi verir. Bir dizine yazma izni ise, dizinde depolanan dosyaları ekleme, kaldırma ve yeniden adlandırma yetkisi verir. Dosyaya yazma izniniz olduğunu ancak dosyanın depolandığı dizine yazma izniniz olmadığını düşünün. Dosyanın içeriğini değiştirebilirsiniz, ancak dosyayı yeniden adlandıramaz, taşıyamaz veya dizinden kaldıramazsınız.
- Yürüt: In WindowsÇalıştırılabilir bir program genellikle ".exe" uzantısına sahiptir ve kolayca çalıştırabilirsiniz. Unix/Linux'ta, çalıştırma izni verilmedikçe bir programı çalıştıramazsınız. Çalıştırma izni verilmemişse, program kodunu görebilir veya değiştirebilirsiniz (okuma ve yazma izinleri verilmişse), ancak çalıştıramazsınız.
Linux'ta dosya izinlerini örneklerle inceleyelim. Terminalde `ls -l` komutunu çalıştırdığımızda şu çıktıyı alırız:
ls -l
Aşağıdaki ekran görüntüsü, izin dizesini uzun bir liste halinde göstermektedir.
Burada '-rw-rw-r–' ifadesini vurguladık ve bu garip görünümlü kod, bize sahibine, kullanıcı grubuna ve dünyaya verilen Unix izinleri hakkında bilgi veriyor.
Burada, ilk '-' işareti bir dosya seçtiğimizi gösteriyor. Aşağıdaki simge ise normal bir dosyayı işaret ediyor.
Aksi takdirde, eğer bir dizin olsaydı, aşağıdaki listede olduğu gibi 'd' harfi gösterilirdi.
Karakterleri hatırlaması oldukça kolaydır.
- r = okuma izni
- w = yazma izni
- x = yürütme izni
- – = izin yok
Şöyle bakalım. Kodun ilk kısmı 'rw-'. Bu, 'Home' adlı sahibin şunları yapabileceğini gösteriyor:
- Dosyayı oku
- Dosyayı yazın veya düzenleyin
Dosya sahibi dosyayı çalıştıramaz çünkü yürütme biti '-' olarak ayarlanmıştır. Aşağıdaki simge, yürütme bitinin tireye dönüştürüldüğünü göstermektedir.
Tasarım gereği, Fedora, CentOS ve benzeri birçok Linux dağıtımı Ubuntu Bir kullanıcıyı, kullanıcının adıyla aynı ada sahip bir gruba ekleyin. Dolayısıyla, 'tom' adlı kullanıcı 'tom' adlı bir gruba eklenir.
İkinci kısım 'rw-'dir. Bu, 'Ana Sayfa' kullanıcı grubu içindir ve grup üyeleri şunları yapabilir:
- Dosyayı oku
- Dosyayı yazın veya düzenleyin
Üçüncü kısım ise tüm dünya için, yani herhangi bir kullanıcı için geçerlidir. 'r-' ifadesi yer alır. Bu, kullanıcının yalnızca şunları yapabileceği anlamına gelir:
- Dosyayı oku
Aşağıdaki açıklama, izin dizesinin her bir bölümünü sahibine, gruba ve dünyaya eşleştirir.
Linux'ta 'chmod' komutunu kullanarak dosya/dizin izinlerini değiştirme
Örneğin, bir iş arkadaşınızın kişisel fotoğraflarınızı görmesini istemiyorsunuz. Bu, dosya izinlerini değiştirerek sağlanabilir.
'chmod' komutunu kullanabiliriz. komuta'Değiştirme modu' anlamına gelen `change mode` komutunu kullanarak, bir dosya veya dizin üzerinde sahip, grup ve dünya için izinler (okuma, yazma, çalıştırma) ayarlayabiliriz.
Sözdizimi:
chmod permissions filename
Bu komutu kullanmanın iki yolu vardır:
- Mutlak mod
- sembolik mod
Linux'ta Mutlak (Sayısal) Mod
Bu modda, dosya izinleri karakterlerle değil, üç basamaklı sekizli sayı olarak temsil edilir. Aşağıdaki tabloda tüm izin türleri için sayılar verilmiştir.
| Numara | İzin Türü | sembol |
|---|---|---|
| 0 | İzin yok | - |
| 1 | Gerçekleştirmek | –X |
| 2 | Yazmak | -W- |
| 3 | Yürüt + Yaz | -wx |
| 4 | Okumak | r- |
| 5 | Okuma + Yürütme | rx |
| 6 | Oku + Yaz | rw |
| 7 | Okuma + Yazma + Yürütme | rwx |
Aşağıdaki terminal penceresinde gösterildiği gibi, chmod komutunun nasıl çalıştığını görelim.
Yukarıdaki terminal penceresinde, 'sample' dosyasının izinlerini '764' olarak değiştirdik. '764' mutlak kodu şu anlama geliyor:
- Sahibi okuma, yazma ve yürütme yetkisine sahiptir.
- Kullanıcı grubu okuma ve yazma yetkisine sahiptir.
- Dünya sadece okuyabilir.
Bu, aşağıdaki sonuçta olduğu gibi '-rwxrw-r–' şeklinde gösterilir.
Linux'ta bir dosyaya mutlak bir sayı atayarak kullanıcı izinlerini nasıl değiştirebileceğiniz aşağıda açıklanmıştır.
Linux'ta Sembolik Mod
Mutlak modda, üç sahibin tümünün izinlerini değiştirirsiniz. Sembolik modda ise belirli bir sahibin izinlerini değiştirebilirsiniz. Bu mod, Unix dosya izinlerini değiştirmek için matematiksel semboller kullanır.
| Kullanım | Açıklama |
|---|---|
| + | Bir dosyaya veya dizine izin ekler |
| - | İzni kaldırır |
| = | İzinleri ayarlar ve daha önce ayarlanmış olan izinleri geçersiz kılar. |
Çeşitli sahipler aşağıdaki şekilde temsil edilmektedir.
| kullanıcı | Gösterimler |
|---|---|
| u | kullanıcı / sahibi |
| g | Grup |
| o | Diğer |
| a | herşey |
İzinleri 755 gibi sayılarla değil, rwx gibi karakterlerle ifade edeceğiz. Aşağıdaki örneğe bakalım.
Linux'ta Sahipliği ve Grubu Değiştirmek
Bir dosyanın veya dizinin sahipliğini değiştirmek için aşağıdaki komutu kullanabilirsiniz:
chown user filename
Bir dosya veya dizin için hem kullanıcıyı hem de grubu değiştirmek istiyorsanız, şu komutu kullanın:
chown user:group filename
Aşağıda gösterildiği gibi bunu uygulamada görelim.
Sadece grup sahibini değiştirmek istiyorsanız şu komutu kullanın:
chgrp group_name filename
'chgrp', "change group" (grup değiştirme) anlamına gelir. Aşağıdaki ekran görüntüsü, chgrp komutunun kullanımını göstermektedir.
Bahşiş
- /etc/group dosyası, sistemde tanımlanmış tüm grupları içerir.
- Aşağıda gösterildiği gibi, üyesi olduğunuz tüm grupları bulmak için "gruplar" komutunu kullanabilirsiniz.
- Aşağıda gösterildiği gibi, varsayılan grubunuz dışında bir grubun üyesi olarak çalışmak için `newgrp` komutunu kullanabilirsiniz.
- Aynı dosyaya iki farklı grubun sahip olması mümkün değildir.
- Linux'ta iç içe gruplar bulunamaz. Bir grup, başka bir grubun alt grubu olamaz.
- x — bir dizini çalıştırmak, o dizine "girmeye" ve alt dizinlere olası erişim elde etmeye izin verilmesi anlamına gelir.
- Dosyalar ve dizinler üzerinde ayarlayabileceğiniz başka izinler de vardır; bunlar daha sonraki bir ileri düzey eğitimde ele alınacaktır.






.png)
.png)
.png)
.png)
.png)


