it-swarm-tr.com

Kullanıcı dizinlerinde izinleri ayarlamak için ICACLS kullanma

Kullanıcı dizinleri izinlerini sıfırlamaya çalışıyorum ve benim komut dosyası son adımda biraz sorun yaşıyorum. Komut dosyam temelde tüm kullanıcı dizininin sahipliğini alır, dizindeki tüm dosya ve klasörlerin izinlerini sıfırlar, açıkça ihtiyacım olan izinleri verir, üst klasörlerden izinlerin tüm devralınmasını durdurur, tüm dosyalar için hak sahibini (belirtilen kullanıcı) ayarlar ve daha sonra dosyalarda çalışabilmem için kendime verdiğim izni kaldırır. Kendimi TÜM dosyalardan ve alt klasörlerden kaldırmak için bu son adımı gerekiyor, ama şu anda sadece% userDir% beni kaldırır ve tüm devralınan izinleri aşağıda bırakır. Bu ICACLS'de belirgin bir eksikliktir. Bunu başarmanın başka bir yolu var mı?

set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
ICACLS "E:\Home Directories\%userDir%" /reset /T
ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F /grant:r "SYSTEM":(OI)(CI)F /grant:r "MYDOMAIN\%username%":(OI)(CI)F
ICACLS "E:\Home Directories\%userDir%" /inheritance:r
ICACLS "E:\Home Directories\%userDir%" /setowner "MYDOMAIN\%userDir%" /T
ICACLS "E:\Home Directories\%userDir%" /remove "MYDOMAIN\%username%"
16
pk.

İlk önce bir gözlem: Mirasınızı her engellediğinizde kendinizi gelecekteki esneklikten kurtarırsınız. Her ne pahasına olursa olsun miras engelleme kaçının.

Örneğin, üst düzey "E:\Home Dizinler" klasörünün içeriğini listeleyebilmeniz gerekiyorsa, aşağıdaki izni göz önünde bulundurun:

  • SİSTEM - Tam Denetim - Bu klasöre, alt klasörlere ve dosyalara uygulanır
  • BUILTIN\Administrators - Tam Denetim - Bu klasöre, alt klasörlere ve dosyalara uygulanır
  • BUILTIN\Kimliği Doğrulanmış Kullanıcılar - Okuma ve Yürütme - Yalnızca bu klasöre uygulanır

Son izin alt klasörlere aktarılmaz. Her alt klasörde devralma etkin kalır ve kullanıcıyı yalnızca "Değiştir" veya "Tam Denetim" haklarına sahip olarak belirlersiniz (kullanıcıların ana dizinleri içinde izinleri ayarlayabilme konusunda ne hissettiğinize bağlı olarak). (Genellikle bu son izni "Gelişmiş" Güvenlik özellikleri sayfasına "Kimliği Doğrulanmış Kullanıcılar" ekleyerek, "Oku" ve "Oku ve Yürüt" onay kutularının işaretini kaldırarak ayarladım. "Gelişmiş" iletişim kutusuna geçip Bu ACE'nin "Yalnızca bu klasöre" ayarına "Uygula" ayarı. Tıklama sayısı açısından bunu ayarlamanın en kolay yolu budur.)

Ardından, betiğiniz şu şekilde olur:

set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
ICACLS "E:\Home Directories\%userDir%" /reset /T
ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F
ICACLS "E:\Home Directories\%userDir%" /setowner "MYDOMAIN\%userDir%" /T

Yukarıda açıkladığım "Doğrulanmış Kullanıcılar" izninin "Yalnızca bu klasör" olarak ayarlanmış kalıtımla eklenmesinin, işlevsellikte aradığınızı size vereceğini ve öğrenirseniz gelecekte esneklik sağlayacağından şüpheleniyorum. gelecekte tüm kullanıcı ana dizinlerine devralması gerekebilecek bir izin ayarlamanız gerekir.

Bu benim SOP, "Belgelerim", "Masaüstü", vb klasörleri ve dolaşım kullanıcı profili dizinleri için. Harika çalışıyor.

Düzenle

re: BUILTIN\Administrators erişimi hakkındaki yorumunuz

Yıllar boyunca BUILTIN\Administrators erişimine izin verme konusundaki insanlarla ilgili çeşitli tartışmalar yaşadım ve benim aldığım şey:

  • Dosyalarına ulaşabiliyorsanız, belirli bir kullanıcı sınıfı sorununu çözmek daha kolaydır. "Sahip olmak" için bir acıdır ve çok sayıda dosya varsa oldukça yavaş olabilir.

  • ICACLS ile gördüğünüz gibi BUILTIN\Administrators, sahiplik "atayabilir" ("alma" dışında), bu nedenle dosyaları BUILTIN\Administrators tarafından erişilebilir duruma getirmeyerek "güvenlik" eklenmez.

  • Denetimi kullanmadığınız sürece (ve potansiyel olarak çok sayıda yanlış pozitif girişi eleme), bir BUILTIN\Administrators kullanıcısı erişmemesi gereken dosyaların sahipliğini aldığında, kopyaladığında ve ardından bir denetim izi oluşturmazsa dosyaları "uygun" sahiplerine ve izinlerine geri döndürür.

  • Microsoft dünyasında, Şifreleme dosya sistemi (EFS), yetkisiz BUILTIN\Administrators erişiminin gerçekleşmesini engelleme sorununu çözmek içindir. NTFS EKL'leri bu sorunu çözmez. (Açıkçası, EFS şehirdeki tek gösteri değildir. Şifreleme, nasıl dilerseniz dileyin "ağ Yöneticisinin erişimini sınırla" sorununu çözmenin gerçek cevabıdır.)

Bana göre, BUILTIN\Administrators kullanıcı kullanıcı dizinlerine (ve aslında herhangi bir klasöre) erişimi belirtmemek, gerçek bir güvenlikten daha azını ("hiçbirinden daha az" sağlarken sorunları çözmek için gereken karmaşıklığı ve zamanı artırdığınız anlamına gelir. "çünkü hiçbir yerde yanlış bir güvenlik hissi verir).

İnsanlarla tartışmayı mantık yoluyla kazanmaya çalışmayı bıraktım. Bazı insanlarla duygusal bir sorun gibi görünüyor. Bu, belirli ayrıcalıklı grupların kullanıcıların posta kutularını açmasını önlemek için bir Exchange kuruluşunun köküne yerleştirilen aptal "Farklı Reddet/Al" ACE'ye benzer. Gerçek bir güvenlik sunmaz (denetlenmeden ACE'yi gerektiği gibi kaldırabilir/yeniden uygulayabilir), yanlış bir güvenlik hissi verir ve gerçek sorunları çözerken engel olur.

BUILTIN\Administrators uygulamasının size erişmesine ilişkin argümanımı beğenmeseniz bile, uygun olduğunda "Yalnızca bu klasör" mirasını kullanarak miras hiyerarşisini sağlam tutmak için want. İzin hiyerarşilerindeki mirasın engellenmesi, tasarımla ilgili bir şeyin "bozulduğu" (ters çevrilmiş vb.).

18
Evan Anderson

İlk olarak, senaryo alıntısı için teşekkürler. Aynı şey üzerinde çalışıyordum ama farklı bir yere saplandım. Benim SBS 2008 kutumda, aşağıdaki kod benim için çalışıyor (tabii ki yükseltilmiş varsayalım). İşletim sistemi tarafından oluşturulan yeni (varsayılan) bir kullanıcı klasörünün icacls% userdir%/t yaptım ve bu komut dosyasını çalıştırdıktan sonra bir klasörün icacls% userdir%/t ile karşılaştırdım ve tüm "O'lar ve Ben "haklıyım. Umarım sizin için de çalışır.

set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
ICACLS "E:\Home Directories\%userDir%" /reset /T
ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(oi)(ci)f
ICACLS "E:\Home Directories\%userDir%\*.*" /grant:r "SYSTEM":(OI)(CI)F /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F /grant:r "MYDOMAIN\%username%":(OI)(CI)F
ICACLS "E:\Home Directories\%userDir%\*.*" /inheritance:r
ICACLS "E:\Home Directories\%userDir%\*.*" /setowner "MYDOMAIN\%userDir%" /T
ICACLS "E:\Home Directories\%userDir%" /remove "MYDOMAIN\%username%" /t

Saygılarımla,

 -d
1
user16680