Linux/Unix'te Dosya İzinleri: Nasıl Okunur, Yazılır ve Değiştirilir?
Linux, birçok kullanıcı tarafından aynı anda erişilebilen çok kullanıcılı işletim sistemi UNIX'in bir klonudur. Linux ayrıca 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 kaldırabileceği için güvenlik endişeleri yaratır. Etkili güvenlik için Linux yetkilendirmeyi 2 seviyeye ayırır.
- Mülkiyet
- Izin
Linux Dosyası kavramı izin ve mülkiyet Linux'ta çok önemlidir. Burada Linux izinlerini ve sahipliğini açıklayacağız ve her ikisini de tartışacağız. Şununla başlayalım: Mülkiyet.
Tıkla okuyun videoya erişilemiyorsa
Linux Dosya Sahipliği
Unix/Linux sisteminizdeki her dosya ve dizine aşağıda verilen 3 tür sahip atanır.
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
Bir kullanıcı grubu birden fazla kullanıcı içerebilir. Bir gruba ait tüm kullanıcılar, dosyaya aynı Linux grup izinlerine erişime sahip olacaktır. Bir dizi kişinin bir dosyaya erişmesi gereken bir projeniz olduğunu varsayalım. 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 ve başka hiç kimse dosyaları okuyamaz veya değiştiremez.
Diğer
Bir dosyaya erişimi olan diğer herhangi bir kullanıcı. Bu kişi ne dosyayı oluşturmuştur ne de dosyanın sahibi olabilecek bir kullanıcı grubuna aittir. Pratik olarak bu, diğer herkes anlamına gelir. Dolayısıyla başkaları için izin belirlediğinizde buna dünya için de belirlenmiş izinler denir.
Şimdi asıl soru nasıl oluyor? Linux'u ayırt etmek Böylece bir 'A' kullanıcısı, başka bir 'B' kullanıcısının hayati bilgilerini/verilerini içeren bir dosyayı etkileyemez. Sanki senin üzerinde çalışan meslektaşını istemiyorsun Linux bilgisayar, resimlerinizi görüntülemek için. burası İzinler yerleşirler ve tanımlarlar kullanıcı davranışı.
Anlayalım İzin sistemi Linux'ta.
Linux Dosya İzinleri
UNIX/Linux sisteminizdeki her dosya ve dizin, yukarıda bahsedilen 3 sahibi için tanımlanmış 3 izne sahiptir.
- Okuyun: Bu izin size bir dosyayı açma ve okuma yetkisi verir. Bir dizindeki okuma izni, size içeriğini listeleme yeteneği verir.
- Yazmak: Yazma izni size bir dosyanın içeriğini değiştirme yetkisini verir. Bir dizine yazma izni size dizinde saklanan dosyaları ekleme, kaldırma ve yeniden adlandırma yetkisi verir. Dosyaya yazma izninizin olduğu ancak dosyanın depolandığı dizinde yazma izninizin olmadığı bir senaryo düşünün. Dosya içeriğini değiştirebileceksiniz. Ancak dosyayı dizinden yeniden adlandıramaz, taşıyamaz veya kaldıramazsınız.
- Yürüt: In Windowsyürütülebilir bir program genellikle ".exe" uzantısına sahiptir ve kolayca çalıştırabilirsiniz. Unix/Linux'ta, yürütme izni ayarlanmadıkça bir programı çalıştıramazsınız. Yürütme izni ayarlanmamışsa, program kodunu hâlâ görebilir/değiştirebilirsiniz (okuma ve yazma izinlerinin ayarlanmış olması şartıyla), ancak çalıştıramazsınız.
Linux'ta dosya izinlerini örneklerle görelim:
ls – l terminalde verir
ls - l
Burada vurguladığımız '-rw-rw-r–'ve bu tuhaf görünümlü kod bize, sahibine, kullanıcı grubuna ve dünyaya verilen Unix izinlerini anlatan koddur.
İşte ilk '-' bir dosya seçtiğimizi ima ediyor.p>
Aksi takdirde, eğer bir dizin olsaydı, d gösterilmiş olurdu.
Karakterleri hatırlaması oldukça kolaydır.
r = okuma izni
w = yazma izni
x = izin çalıştır
- = izin yok
Bir de şöyle bakalım.
Kodun ilk kısmı 'rw-'. Bu, 'Ev' sahibinin şunları yapabileceğini gösterir:
- Dosyayı oku
- Dosyayı yazın veya düzenleyin
- Yürütme biti '-' olarak ayarlandığından dosyayı yürütemez.
Tasarım gereği Fedora, CentOS gibi birçok Linux dağıtımı, Ubuntuvb. kullanıcıları kullanıcı adıyla aynı grup adına sahip bir gruba ekleyecektir. Böylece 'tom' adlı gruba bir 'tom' kullanıcısı eklenir.
İkinci kısım ise 'rw-'. 'Ev' kullanıcı grubu ve grup üyeleri için şunları yapabilir:
- Dosyayı oku
- Dosyayı yazın veya düzenleyin
Üçüncü bölüm dünya içindir, yani herhangi bir kullanıcı anlamına gelir. Diyor ki 'R-'. Bu, kullanıcının yalnızca şunları yapabileceği anlamına gelir:
- Dosyayı oku
Linux'ta dosya/dizin izinlerini 'chmod' komutunu kullanarak değiştirme
Meslektaşınızın kişisel fotoğraflarınızı görmesini istemediğinizi söyleyin. Bu, dosya izinlerini değiştirerek başarılabilir.
' ifadesini kullanabilirizchmod' 'Mod değiştir' anlamına gelen komut. Komutu kullanarak bir dosya/dizin üzerinde sahip, grup ve dünya için izinler (okuma, yazma, yürütme) ayarlayabiliriz.
Sözdizimi:
chmod permissions filename
Kullanmanın 2 yolu var komuta -
- Mutlak mod
- sembolik mod
Linux'ta Mutlak (Sayısal) Mod
Bu modda dosya izinler karakter olarak değil üç basamaklı sekizlik sayı olarak temsil edilir.
Aşağıdaki tabloda tüm izin türleri için sayılar verilmektedir.
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 | Okuma + Yazma | rw |
7 | Okuma + Yazma + Yürütme | rwx |
Chmod izinleri komutunu çalışırken görelim.
Yukarıda verilen terminal penceresinde 'sample' dosyasının izinlerini '764' olarak değiştirdik.
'764' mutlak kodu şunu söylüyor:
- Sahibi okuyabilir, yazabilir ve çalıştırabilir
- Kullanıcı grubu okuyabilir ve yazabilir
- Dünya sadece okuyabilir
Bu '-rwxrw-r– olarak gösterilir
Mutlak bir sayı atayarak Linux'ta dosyadaki kullanıcı izinlerini bu şekilde değiştirebilirsiniz.
Linux'ta Sembolik Mod
Mutlak modda, 3 sahibin tamamının izinlerini değiştirirsiniz. Sembolik modda belirli bir sahibin izinlerini değiştirebilirsiniz. Unix dosya izinlerini değiştirmek için matematiksel sembollerden yararlanır.
Kullanım | Tanım |
---|---|
+ |
Bir dosyaya veya dizine izin ekler |
- |
İzni kaldırır |
= |
İzni ayarlar ve daha önce ayarlanan izinleri geçersiz kılar. |
Çeşitli sahipler şu şekilde temsil edilir:
Kullanıcı Tanımları | |
---|---|
u |
kullanıcı / sahibi |
g |
Grup |
o |
Diğer |
a |
herşey |
755 gibi rakamlardaki izinleri değil, rwx gibi karakterleri kullanmayacağız. Bir örneğe bakalım
Linux'ta Sahipliği ve Grubu Değiştirmek
Bir dosya/dizinin sahipliğini değiştirmek için aşağıdaki komutu kullanabilirsiniz:
chown user filename
Bir dosya veya dizin için kullanıcıyı ve grubu değiştirmek istemeniz durumunda bu komutu kullanın.
chown user:group filename
Bunu çalışırken görelim
Yalnızca grup sahibini değiştirmek istiyorsanız şu komutu kullanın:
chgrp group_name filename
'chgrp' değişim grubunu ifade eder.
Bahşiş
- /etc/group dosyası sistemde tanımlanan tüm grupları içerir.
- Üye olduğunuz tüm grupları bulmak için “groups” komutunu kullanabilirsiniz.
- Varsayılan grubunuz dışında bir gruba üye olarak çalışmak için newgrp komutunu kullanabilirsiniz.
- Aynı dosyaya sahip 2 grubunuz olamaz.
- Linux'ta iç içe gruplarınız yok. Bir grup diğerinin alt grubu olamaz
- x- Bir dizini yürütmek, bir dizine “girilmesine” ve alt dizinlere olası erişim sağlanmasına izin verilmesi anlamına gelir
- Dosyalar ve Dizinler üzerinde ayarlayabileceğiniz diğer izinler daha sonraki gelişmiş bir eğitimde ele alınacaktır
Özet:
- Linux çok kullanıcılı bir sistem olduğundan güvenlik için izinleri ve sahipliği kullanır.
- Bir Linux sisteminde üç kullanıcı türü vardır: Kullanıcı, Grup ve Diğer
- Linux dosya izinlerini r,w ve x ile gösterilen okuma, yazma ve yürütme olarak ayırır.
- Bir dosyadaki izinler, Mutlak ve Sembolik moda bölünebilen 'chmod' komutuyla değiştirilebilir
- 'chown' komutu bir dosyanın/dizinin sahipliğini değiştirebilir. Aşağıdaki komutları kullanın: chown user file veya chown user:group file
- 'Chgrp' komutu grup sahipliğini değiştirebilir chrgrp grup dosya adı
- x – Bir dizini yürütmek ne anlama geliyor? C: Bir dizine "girilmesine" ve alt dizinlere olası erişim sağlanmasına izin verilmesi.