Klasör ve Dosya İzinlerinin Otomatik Düzenlenmesi (ACL)

Bu makalede NTFS erişim hakları ve bu hakların düzenlenmesi ile ilgili küçük ipuçları ve yardımcı araçlardan bahsedeceğim. Organizasyonunuzda aktif olarak dosya sunucuları kullanıyorsanız faydalı olacağını düşünüyorum. Çünkü düzensiz erişim yetkilerini düzenlemek çok fazla zamanımızı alabilir. Ayrıca klasörler üzerinde Administrators veya SYSTEM kullanıcılarının yetkilerinin olmaması, antivirüs taraması, kota yönetimi veya disk alanı yönetimi gibi birçok yönetimsel fonksiyonumuzu tam olarak yapamamamıza neden olabilir. El ile yetkileri düzenlemek ise çoğu zaman işin içinden çıkılmaz bir hale gelebilir.

 


Öncelikle çok kullandığımız birkaç tanımın ne olduğuna kısaca bakalım.

 

Security Descriptors (SD)

 

NT dosya sistemi üzerindeki tüm nesnelerin, registry bileşenlerinin,  AD nesnelerinin veri yapılarının ilk kısmı Security Descriptors (SD) olarak tanımlanır. SD; nesnenin sahibini,  nesne üzerindeki kullanıcı erişim haklarını ve erişimlerin izlenmesi için gerekli tanımları içeren binary veridir.

 

Şekil-1

 

ACE (Access Control Entries – Erişim Kontrol Girişi)

 

Obje üzerinde kullanıcı veya grubun erişim hakkını tanımladığımız girişlere denir. Yani NTFS erişim izni olarak veya audit girişi olarak girdiğimiz her giriş ACE olarak adlandırılır. Örneğin şekil-1’deki Administrators’a verilen full control hakkı ve diğer haklar birer ACE’dir.

 

DACL  (Discretionary Access Control List)

 

Discretionary Access Control List (DACL); objeye erişim için girilen ACE’lerin tümüdür. İşletim sistemi, kullanıcının veya grubun, obje üzerindeki DACL’ye göre objeye erişim hakkının olup olmadığını ve hangi yetkilerle erişeceğini belirler.

 

Şekil-2: pps objesi için DACL

 

SACL  (System access control List)

 

Sistemin objeye kimin eriştiğinin ve ne amaçla eriştiğinin izlemesi (audit) için girilen ACE listesine SACL diyoruz. SACL girişi olan objeye erişim olduğunda üzerindeki ACE listesine göre bir audit log oluşur ve local makine üzerindeki Securtiy log’a yazılır. Bir domain yapınız var ise öncelikle bir auditing politikası oluşturmanız gerekecektir.

 

Şekil-3: pps objesi için SACL

 

ACL’yi yukarıda gördüğünüz ekranlardan düzenleyebiliyoruz. Fakat birçok dosya sunucunuz ve gigabyte’larca veriniz var ve inheritence yapı bozulmuş ise veya domain isminiz değişti ve datalara yeniden erişim izinleri vermeniz gerekiyorsa script veya batch kullanmanız gerekebilir. İnternet üzerinde bu amaçla geliştirilmiş birçok araç bulabilirsiniz. Bunlardan en başarılılarını xcacls.vbs, subinacl ve setacl olarak sayabilirim.

 

Bu makalemde araçların tüm parametrelerinin kullanımını anlatmayacağım. /help parametresini kullanarak parametreleri görebilirsiniz. Ayrıca bu amaçla yazılmış birçok kaynak site mevcut. Sadece birkaç küçük kullanım örneği göstereceğim.

 

Subinacl (Resource Kit)

 

Resource Kit ile gelen araçlardan biri Subinacl. Fakat 4.0.4.1618 sürümünden önceki versiyonları windows xp ve 2003 ile çalışırken sorun çıkarıyor. Özellikle ownership (dosya sahipliği) alma ve atama işlemlerini yapamıyor. O yüzden aşağıda verdiğim linkten son sürümünü indirmenizi öneriyorum.

 

Download Subinacl 4.0.4.1618

 

Subinacl /help komutu ile parametreler ve object_type açıklamalarına bakabilirsiniz.

 

Kullanım:

 

SUBINACL [/noverbose] /object_type object_name [/action=parameter]

 

Örnek:

 

D:\homefolders klasöründeki dosyaların owner’ını Administrators olarak atar ve Administrators, System kullanıcılarına full kontrol ve mshowto\boran kullanıcısına Modify hakkı verir.

 

subinacl /file D:\Homefolders /setowner=Administrators /grant=Administrators=F

/grant=SYSTEM=F /grant=mshowto\boran=C"

 

Yukarıdaki örneğin alt klasörlere uygulanan hali ve işlemleri homefolder.txt dosyasına yazar.

 

subinacl /outputlog=d:\homefolder.txt /subdirectories D:\homefolders\*.* /setowner=Administrators

/grant=Administrators=F /grant=SYSTEM=F /grant=mshowto\boran=C"

 

XCACLS (Resource Kit)

 

Xcacls.vbs, Cacls.vbs’in geliştirilmiş hali. Server resource kit ile geliyor ve gelişmiş parametreleri var. Fakat ownership alma veya atama işlemi yapıyorsanız Subinacl kullanmanızı öneriyorum. Çünkü dosya üzerinde yetkiniz yok ise ownership’liği alamıyor (Subinacl yapabiliyor). 

 

Örnek:

 

Aşağıdaki örneği D:\homefolders altındaki tüm alt klasörler için inheritence’i etkinleştirmek için kullandım.

 

Şekil-4

 

SetAcl (3rd Party)

 

Kolay bir şekilde ACE girmek için geliştirilmiş 3rd parti bir araç. SACL listesini bu araç ile kolayca oluşturabilirsiniz. Dosya sunucunuz üzerinde file system object için auditing açtıysanız, önemli klasörler için erişim loglarını tutmak isteyebilirsiniz. Birçok sunucu üzerinde birçok paylaşım için audit girişleri eklemek için bu aracı kullanabilirsiniz.

 

Örnek:

 

Aşağıdaki örnek, klasör üzerinde user1 kullanıcısı için change, Administrators (S-1-5-32-544) için full erişim haklarını (ACE) ve user2 kullanıcısının için başarısız erişim denemelerini (fail audit) izlemek için SACL listesine ACE ekler.

 

Şekil-5

 

Referanslar

 

What Are Security Descriptors and Access Control Lists?

http://technet2.microsoft.com/WindowsServer/en/Library/d4f08d96-f360-451f-bed3-61a60bc2acde1033.mspx?mfr=true

 

SetAcl Documentation

http://setacl.sourceforge.net/html/doc-basics.html

 

How to use Xcacls.vbs to modify NTFS permissions

http://support.microsoft.com/?id=825751

 

Kullanıcı home folder yetkilerinin düzenlenmesi için script.

http://dboran.blogspot.com/

Yazı gezinmesi

Mobil sürümden çık