Selamlar arkadaşlar bu yazımda sizlere Ubuntu üzerinde ACL (Access Control List)’lerden bahsediyor olacağım.
Bu işleme ise aşağıdaki nedenden dolayı ihtiyaç duydum arkadaşlar. Sizinde bildiğiniz üzere sitem üzerinde Graylog ve Nxlog ile log yönetimini anlatmaya çalışıyorum. Yazılarımın içerisinde bulunan Ubuntu üzerindeki Auth.log dosyasından logları Graylog’a aktarmaya çalıştığımı bilirsiniz. Tahmin edebileceğimiz gibi bu dosya bir /Var/Log altında bulunan bir System Log dosyası olduğundan dolayı ve NXLog programımıda nxlog kullanıcısı ile çalıştırdığım için aşağıdaki gibi hata ile karşılaştım.
Nxlog’un log dosyasında kocaman Permission Denied yazıyordu ve bende bunun üzerine izinlerini chmod 777 ile tüm izinleri kullanıcı, grup ve diğer alanlarına full yetki verecek şekilde ayarladım ancak bu ayarlamalarını yapmama rağmen cihazım Restart olduğunda tekrar aşağıdaki izinlere döndüğü için farklı yol bulmaya çalıştım.
Sonrasında ise bende dedim ki bir Google’layayımda sorunu çözeyim derken ACL’leri fark ettim ve şimdi onları sizede anlatıyorum arkadaşlar.
Ubuntu File ACL (Acces Control List) nedir :
Erişim kontrol listesi, dosyalarımız ve dizinlerimiz üzerinde izinleri ayarlamamızı ve bunu yaparken ayrıntılı bir şekilde yönetmemizi sağlayan bir özelliktir. Standart Linux izinlerine (rwxrwxrwx) göre daha karmaşık yapıda erişim kontrolleri sağlarlar.
Bir örnek vermem gerekirse bazen kullanıcı oluşturduğunuzda, belirli bir klasöre full yetkisi olan bir kullanıcı grubu olduğunu düşünün ve siz oluşturduğunuz bu kullanıcıyı, o gruba eklemek istemiyorsunuz ama aynı zamanda sadece oluşturulan kullanıcıya özel, o grup’un eriştiği bir klasöre erişmesini sağlamak istiyorsunuz. Tam olarak ACL ile bunu yaptırabilirsiniz.
Şimdi İşlemlerimize başlıyoruz.
> getfacl --help
> setfacl --help
Komutlarımız hakkında ayrıntılı bilgileri bu komutla bulabilirsiniz.
> getfacl /var/log/auth.log
Komutumuz yardımıyla Dosyamızın ya da Klasörlerimizin izinlerini görüntüleyebiliriz.
> setfacl -m u:nxlog:rwx /var/log/auth.log
Komudumuzu açıklmam gerekirse -m ile modify (düzenleme) yapacağımızı belirtiyoruz. Sonra u:nxlog:rwx komutu ile u: kullanıcıda işlem yapacağımızı, nxlog kullanıcı adımızı, :rwx ise kullanıcımıza verdiğimiz izinleri belirtiyor. Sonrasında ise bildiğiniz gibi dosya ve ya klasör path/adı.
u: = user, g: = group için kullanılıyor arkadaşlar.
> setfacl -R -m g:nxlog:rwx /var/log/
Yukarıdaki komutu kullanır ve -m parametresinden önce -R yazarsanız, izin vermiş olduğunuz klasör ve o klasör içerisindeki tüm dosya ve klasörlere izin vermiş oluyorsunuz arkadaşlar.
> setfacl -x g:nxlog /var/log/auth.log
Komudumuz ile ise vermiş olduğumuz ACL izinlerini siliyoruz. -x parametresi bunu yapacağımızı bildiriyor. Kullanıcı ya da grup adımızdan sonra :rwx ifadelerini silmeniz gerekiyor. Eğer tüm verdiğiniz izinleri kaldırmak istiyorsanız; -b eklemeli ve hepsini kaldırmasını istediğinizi belirtmelisiniz. Alt klasörlerede uyguladığınız durumlar var ise -R’yi de eklemeyi unutmuyoruz. Setfacl -b -R şeklinde yazmalısınız -x kaldırılmalı.
> ls -al /var/
Tabi bu kadar ayar yaptığımzıda hangi dosya veya klasörde ACL uygulandığını görmemiz önemli. Bunu tespit etmesi çok kolay ls -al yaptığınızda dosyanızın izinlerinin yazılı olduğu alanın sonuna + işareti getirmektedir.
Bir yazımın daha sonuna geldik arkadaşlar. Umarım sizlere yararlı içerikler ulaştırabiliyorumdur. Sorularınız ve görüşleriniz için lütfen yorumlar alanını kullanmayı unutmayın. Ayrıca bana destek olmak isterseniz YouTube üzerinde bulunan SistemDostu kanalıma abone olabilirsiniz. Herkese kolay gelsin.