Örneklerle Linux’ta Umask Komutu Nasıl Kullanılır

Merhabalar,

 

Linux ve Unix işletim sistemlerinde, tüm yeni dosyalar varsayılan bir dizi izinle oluşturulur. umask yardımcı programı, yeni oluşturulan dosyalar veya dizinler için izin bitlerini belirleyen dosya modu oluşturma maskesini görüntülemenizi veya ayarlamanızı sağlar.

umask e yeni dosyalar ve dizinler oluşturan mkdir, touch, tee ve diğer bunu yapabilen diğer komutlar tarafından kullanılır.

Linux İzinleri

Daha ileri gitmeden önce kısaca Linux izin modelini açıklayalım.

Linux’ta her dosya bir sahip ve bir grupla ilişkilendirilir ve üç farklı kullanıcı sınıfı için izin erişim haklarıyla atanır.

Dosya sahibi

Grup üyeleri

Diğer herkes

 

Her sınıf için geçerli olan üç izin türü vardır.

Okuma izni (read)

Yazma izni (write)

Yürütme izni (execute)

 

Bu kavram, hangi kullanıcıların dosyayı okumasına, dosyaya yazmasına veya dosyayı yürütmesine izin verileceğini belirlemenize olanak tanır.

Dosya izinlerini görüntülemek için ls komutunu kullanın

ls -l linux-data.txt

 

 

Şimdi yukarıdaki İlk karakter, normal bir dosya (-), bir dizin (d), bir sembolik bağ (l) veya başka herhangi bir özel dosya türü olabilen dosya türünü temsil eder.

Sonraki dokuz karakter, her biri üç karakterden oluşan üç set olmak üzere izinleri temsil eder. İlk kümeler sahip izinlerini = rwx, ikincisi grup izinlerini = rwx ve son küme diğer herkesin izinlerini= rwx gösterir.

Ayrıca üç özel dosya izni türü daha vardır: setuid, setgid ve Sticky Bit.

Yukarıdaki örnekte (rwxr-wx-rwx), tüm herkesin full erişim hakkı olduğu belirtilmektedir.

Dosya izinlerini sayısal bir gösterim kullanarak temsil edersek, aşağıdaki şekilde gösterebiliriz.

Sayısal gösterimde gösterildiğinde, izinler üç veya dört sekizlik basamak (0-7) olabilir. İlk basamak özel izinleri temsil eder ve atlanırsa, dosya üzerinde hiçbir özel izin ayarlanmadığı anlamına gelir. Örneğimizde 777, 0777 ile aynıdır. İlk rakam setuid için 4, setgid için 2 ve Sticky Bit için 1 kombinasyonu olabilir.

Dosya izinleri chmod komutu kullanılarak ve sahiplik chown komutu kullanılarak değiştirilebilir.

 

umask’ı anlamak:

Varsayılan olarak, Linux sistemlerinde, dosya varsayılan izinleri kullanıcı,  grup ve diğer herkese okuma ve yazma izni verilir 666 ile.Varsayılan olarak dizinler için kullanıcı, grup diğer herkese okuma, yazma ve yürütme  izinleri verilmiştir 777 ile.Linux, yürütme izinleriyle bir dosyanın oluşturulmasına izin vermez.

Varsayılan oluşturma izinleri, umask yardımcı programı kullanılarak değiştirilebilir.

umask yalnızca geçerli shell ortamını etkiler. Çoğu Linux dağıtımında, varsayılan sistem çapında umask değeri pam_umask.so veya /etc/profile dosyasında ayarlanır.

Kullanıcı bazında farklı bir değer belirtmek istiyorsanız, kullanıcının ~/.bashrc veya ~/.zshrc gibi shell yapılandırma dosyalarını düzenleyin. Geçerli oturum umask değerini, umask ve ardından istenen değeri çalıştırarak da değiştirebilirsiniz.

Geçerli maske değerini görüntülemek için, herhangi bir bağımsız değişken olmadan umask yazmanız yeterlidir.

umask

 

Umask değeri, yeni oluşturulan dosya ve dizinlerde AYARLANMAYAN izin bitlerini içerir.

Daha önce de belirttiğimiz gibi, dosyalar için varsayılan oluşturma izinleri 666 ve dizinler için 777’dir. Yeni dosyaların izin bitlerini hesaplamak için varsayılan değerden umask değerini çıkararar bulur.

Örneğin, umask 002’nin yeni oluşturulan dosya ve dizinleri nasıl etkileyeceğini hesaplamak için aşağıdaki hesaplamayı yapmalıyız.

Dosyalar: 666 – 002 = 664. Dosya sahibi ve grubu dosyaları okuyabilir ve değiştirebilir.Diğer herkes sadece dosyaları okuyabilir.

Dizinler: 777 – 002 = 775.Dosya sahibi ve grubu dizin üzerinde dizindeki dosyaları listeleyebilir, okuyabilir, değiştirebilir, oluşturabilir veya silebilir.Diğer herkes dizine cd girebilir ve dosyaları listeleyebilir ve okuyabilir.

 

-S seçeneğini kullanarak maske değerini sembolik gösterimde de görüntüleyebiliriz.

umask -S

Sayısal gösterimden farklı olarak, sembolik gösterim değeri, yeni oluşturulan dosya ve dizinlerde ayarlanacak izin bitlerini içerir.

 

Umask Değerini Ayarlama:

Dosya oluşturma Umask` ı, octal (sekizli) veya sembolik gösterim kullanılarak ayarlanabilir. Değişiklikleri kalıcı hale getirmek için, yeni umask değerini /etc/profile dosyası gibi tüm kullanıcıları etkileyecek bir genel yapılandırma dosyasında veya ~/.profile, ~/.bashrc veya ~/.zshrc gibi bir kullanıcının shell (kabuk) yapılandırma dosyalarında ayarlayabiliriz,  bu işlem yalnızca kullanıcıyı etkileyecektir. Kullanıcı dosyalarının global dosyalara göre önceliği vardır.

Umask değerinde değişiklik yapmadan önce, yeni değerin potansiyel bir güvenlik riski oluşturmadığından emin olun. 022’den daha az kısıtlayıcı değerler çok dikkatli kullanılmalıdır. Örneğin, umask 000, herkesin yeni oluşturulan tüm dosyalar üzerinde okuma, yazma ve yürütme izinlerine sahip olduğu anlamına gelir.

 

Diyelim ki yeni oluşturulan dosya ve dizinler için daha kısıtlayıcı izinler ayarlamak istiyoruz, böylece diğerleri dizinlere cd yapamayacak ve dosyaları okuyamayacak. İstediğimiz izinler dizinler için 750 ve dosyalar için 640’tır.

Umask değerini hesaplamak için, varsayılan izinlerden istenen izinleri çıkarmanız yeterlidir:

Umask değeri: 777-750 = 027

Sayısal gösterimde gösterilen istenen umask değeri 027’dir.

Yeni değeri sistem genelinde kalıcı olarak ayarlamak için /etc/profile dosyasını metin düzenleyicinizle açalım.

ve dosyanın başında aşağıdaki satır mevcutsa değiştirelim yoksada ekleyelim.

vi /etc/profile

Değişikliklerin etkili olması için source  komutunu aşağıdaki şekilde çalıştıralım.Eğer yaptığımız işlem aktif olmazda oturumu kapatıp tekrar açabiliriz.

source /etc/profile

Yeni ayarları doğrulamak için mkdir kullanarak yeni bir dosya ve dizin oluşturalım be deneyelim.

mkdir TEST2
touch test2.tx

 

ls komutunu kullanarak izinleri kontrol edelim, istediğimiz gibi test.txt dosyasının varsayılan izinleri 640 ve TEST2 dizinin izinlerinin 750 olduğunu görüyoruz.

ls -l

Dosya oluşturma maskesini ayarlamanın başka bir yolu da sembolik gösterim kullanmaktır. Örneğin umask u=rwx,g=rx,o= umask 027 ile aynıdır.Buda kullanılabilinir.

 

Bu eğitim yazımızında sonuna geldik.Umarım sizler için faydalı olur.

 

 

 

Bu eğiticiye oy ver
[Total: 3 Average: 5]
Firat CANOĞLU TAĞ