10.09.2009

linux işletim sisteminde Access Control List (ACL) tanımlamasını nasıl yapabilirim?

ACL tanımlamak için ilk yapmamız gereken şey /etc/fstab dosyası içerisinde,
ACL tanımlayacagımız filesystem'e ACL yapabilsin izni vermek olacak.

#/dev/hdd1 /yedek ext3 defaults,acl 1 2

Bu eklenti sonrasında,

#mount -o remount /yedek komutunu çalıştırarak sistemimizi restart etmeden acl’in aktif olmasını saglayabiliriz.

NOT: yukarıdaki her iki işlemi tek bir komutta gerçekleştirebiliriz;

#mount -o remount -o acl /dev/hdd1 /yedek

fakat bu şekilde yapılan işlem, sunucu restart'ından sonra etkili olmaz

Bu noktadan sonra yapacagımız, istedigimiz bir kullanici icin, istedigimiz bir dizin veya dosya üzerinde yetki tanımlaması yapmak olacaktir.

/yedek mount point’i altinda bulunan deneme dosyasının erişim yetkileri aşagıdaki gibi olsun;

-rwx------ 1 yusuf yusuf 4 Sep 10 15:50 deneme

aras kullanıcısına okuma, yazma ve çalıştırma hakkı vermek için;

#setfacl -m u:aras:rwx /yedek/deneme komutunu çalıştırıyoruz. bu işlemden sonra dosya izinlerine baktıgımızda,

-rwxrwx---+ 1 yusuf yusuf 4 Sep 10 15:50 deneme #dosya erişim yetkilerinin degiştigi hemen belli oluyor.

Ayrıca, ada kullanıcısının bu dosya üzerinde hiçbir yetkisinin olmamasını istersek... Bunun için,

#setfacl -m u:ada:--- /yedek/deneme komutunu kullanabiliriz.

NOT: Burada dosya erişimi engellemek icin kullandıgımız "—" yerine "0" da yazabiliriz.

Yaptıgımız bu tanımlamaları ve/veya ileride bu dosyaya tanımlanmış acl’leri gormek istersek getfacl komutunu kullanmak yeterli olacaktir.

[root@centos-yusuf yedek]# getfacl /yedek/deneme
getfacl: Removing leading '/' from absolute path names
# file: yedek/deneme
# owner: yusuf
# group: yusuf
user::rwx
user:aras:rwx
user:ada:---
group::---
mask::rwx
other::---

Bir dosyadan acl silmek istiyorsak,

#setfacl -x u:ada /yedek/deneme

Tum bu işlemleri kullanıcı yerine grup icin kullanmak istersek "u" parametresi yerine "g" parametresini eklememiz yeterli olacaktir.

Aynı şekilde işlemler bir dosyaya uygulandıgı gibi sadece dizin verilerek dizine de ACL uygulamak mumkundur.