Dosya İzinleri
- İngilizcesi
- File Permissions
- Okunuşu
- fayl pırmişıns
Kısaca
Dosya izinleri, bir dosyayı kimin okuyup değiştirebileceğini ya da çalıştırabileceğini belirleyen ve işletim sisteminin her erişimde uyguladığı kurallardır.
Dosya izinleri (file permissions) nedir?
Dosya izinleri, işletim sisteminin her dosya ve dizin üzerinde kimin ne yapabileceğini denetleme yoludur. Unix benzeri sistemlerde her dosyanın bir sahibi olan kullanıcısı, bir sahibi olan grubu ve üç izin kümesi vardır: biri sahip için, biri grup üyeleri için ve biri herkes için. Her küme okumaya (r), yazmaya (w) ve çalıştırmaya (x) izin verebilir.
ls -l çalıştırmak izinleri -rwxr-xr-- gibi bir dize olarak gösterir: ilk karakter dosya türüdür, ardından sahip, grup ve diğerleri üçlüleri gelir. Aynı izinler sekizlik (octal) olarak yazılabilir; burada okuma 4, yazma 2 ve çalıştırma 1'dir, dolayısıyla 754, sahibin her şeyi yapabileceği, grubun okuyup çalıştırabileceği ve diğerlerinin yalnızca okuyabileceği anlamına gelir. Dizinlerde harfler biraz farklı anlam taşır: okuma adları listeler, yazma girdi oluşturmaya, silmeye ve yeniden adlandırmaya izin verir, çalıştırma ise dizine girmeye izin verir. İzinleri chmod ile, sahipliği chown ile değiştirirsiniz ve kernel bir program bir dosyayı her açtığında bunları kontrol eder.
İzinler bir ofis binasındaki anahtarlar gibidir: sahibin kendi ofisinin anahtarı vardır, ekip proje odasının anahtarını paylaşır ve ziyaretçiler yalnızca pencereden bakabilir. Günlük işte önemlidirler: SSH, diğer kullanıcıların okuyabildiği bir özel anahtarı kullanmayı reddeder, bir betiğin çalıştırılabilmesi için çalıştırma bitine ihtiyacı vardır ve bir web sunucusu kendi kodunun üzerine yazabilmemelidir. Windows ve birçok Linux sistemi, belirli kullanıcılar için daha ince taneli kurallara izin veren erişim denetim listelerini (ACL) de destekler.
Dosya izinleri bazen rol tabanlı erişim denetimi gibi uygulama içi yetkilendirmeyle karıştırılır. Dosya izinleri dosyalar ve dizinler için işletim sistemi kernel'ı tarafından uygulanır; uygulama yetkilendirmesi ise oturum açmış bir kullanıcının o uygulama içinde neler yapabileceğine karar verir. Yaygın bir hata, bir erişim hatasını düzeltmek için chmod 777 çalıştırmaktır; bu her kullanıcının dosyayı değiştirmesine izin verir. En az ayrıcalık ilkesini izleyip yalnızca gerekeni vermek çok daha güvenlidir.
Önemli noktalar
- Her dosyanın bir sahibi, bir grubu ve sahip, grup ve diğerleri için izinleri vardır.
- Temel izinler okuma, yazma ve çalıştırmadır.
- Sekizlik gösterim okuma (4), yazma (2) ve çalıştırmayı (1) toplar;
755ya da600gibi. chmodizinleri,chownsahipliği değiştirir.chmod 777'den kaçının; işe yarayan en az erişimi verin.
Örnek
# Type, then owner (rwx), group (r-x), and others (r--)
ls -l deploy.sh
# -rwxr-xr-- 1 ada devs 512 Sep 30 10:00 deploy.sh
# Make a script executable for its owner
chmod u+x deploy.sh
# Owner can read and write; nobody else has access (needed for SSH keys)
chmod 600 ~/.ssh/id_ed25519
# Change the owner and the group
sudo chown ada:devs deploy.shSık sorulan sorular
chmod 755 ne anlama gelir?
Sahibe okuma, yazma ve çalıştırma izni (7), gruba ve diğer herkese ise okuma ve çalıştırma izni (5) verir. Başkalarının kullanabileceği ancak değiştiremeyeceği betikler ve dizinler için yaygın bir ayardır.
chmod 777 neden tehlikelidir?
Sistemdeki her kullanıcıya dosyayı okuma, değiştirme ve çalıştırma izni verir. Ele geçirilmiş herhangi bir hesap ya da process de onu, örneğin kötü amaçlı kod eklemek için değiştirebilir.
Unix izinleri ile ACL'ler arasındaki fark nedir?
Klasik Unix izinleri yalnızca üç grup için kurala izin verir: sahip, grup ve diğerleri. Erişim denetim listeleri ise istediğiniz sayıda belirli kullanıcı ve grup için girdi ekler; Windows dosya erişimini böyle yönetir ve çoğu Linux dosya sisteminde bir seçenektir.
İlgili sayfalar
- Dosya Sistemiİşletim Sistemleri, s. 10Dosya sistemi, işletim sisteminin bir depolama aygıtındaki veriyi dosya ve klasörlere düzenleyen ve her parçanın nerede saklandığını izleyen bölümüdür.
- User Spaceİşletim Sistemleri, s. 37User space, sıradan programların çalıştığı kısıtlı alandır; kernel space'ten ayrıdır, böylece hatalı ya da kötü niyetli bir uygulama tüm sistemi çökertemez.
- YetkilendirmeGüvenlik, s. 48Yetkilendirme, kimliği doğrulanmış bir kullanıcının ya da servisin hangi verileri okuyabileceğine, değiştirebileceğine veya silebileceğine karar vermektir.
- En Az Ayrıcalık İlkesiGüvenlik, s. 9En az ayrıcalık ilkesi, her kullanıcıya, programa ve servise yalnızca işini yapması için gereken asgari erişimin verilmesini öngören güvenlik kuralıdır.
- Shellİşletim Sistemleri, s. 28Shell, kullanıcının yazdığı ya da bir betikte yazılı komutları okuyup işletim sisteminden çalıştırmasını isteyen, genellikle metin arayüzlü bir programdır.
- LinuxDevOps ve Bulut, s. 31Linux, çoğu sunucuyu, bulutu, konteyneri ve Android telefonu çalıştıran, genellikle dağıtım olarak paketlenen açık kaynaklı bir işletim sistemi çekirdeğidir.
- sudoİşletim Sistemleri, s. 30sudo, izin verilen bir kullanıcının kendi parolasıyla tek bir komutu root ya da başka bir kullanıcının yetkileriyle çalıştırmasını sağlar ve bunu kaydeder.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin