چگونه مجوزهای واگذار شده در اکتیو دایرکتوری را ببینیم یا حذف کنیم

Telegram_GEEKBOY

برای دیدن View یا حذف Delete مجوزهای واگذار شده Delegated Permissions در اکتیو دایرکتوری Active Directory – AD میتوان از روشهای زیر استفاده کرد.

کنسول Active Directory Users and Computers

برای دیدن مجوزهای اختصاص داده شده assigned permissions بر روی یک Organizational Unit – OU میتوانیم از کنسول Active Directory Users and Computers استفاده کنیم. برای دیدن شما باید در قسمت View ، قابلیت Advanced Features فعال کنید.

بعد از این کار، روی OU مورد نظر بطور مثال OU=NewYork کلیک سمت راست کرده و Properties را انتخاب میکنیم .

حالا تب Security را کلیک کرده و سپس دکمه Advanced را کلیک میکنیم. در تبPermissions که نام دیگر آن Discretionary Access Control List – DACL میباشد، شما میتوانید لیست ACEs را ببینید .

دیدن و حذف کردن با استفاده از برنامه Dsrevoke Jump

مجوزهای اختصاص داده شده assigned permissions را میتوان با استفاده از Dsrevoke به صورت فرمت Access Control Entries – ACE مشاهده کرد و همچنین میشود آنها را حذف Delete کرد .

بطور مثال ما احتیاج داریم که ببینیم یوزر Ed.Price چه مجوزهایی permissions برای OU=NewYork در دومین Contoso.com دارد، برای اینکار فرمان Command زیر را اجرا میکنیم :

Dsrevoke /Report OU=NewYork,DC=Contoso,DC=Com Contoso\Ed.Price

همانطور که در عکس مشاهده میکنید یوزر Ed.Price دارای ACE#1 و ACE#2 یعنی 2x ACEs برای OU=NewYork دارد. اگر در اول راه هستید و متوجه نمیشود میتوانید از کنسول Active Directory Users and Computers استفاده کرده و این لیست را بهتر متوجه شوید. در اینجا ما ACE#2 مربوط به یوزر Ed.Price را در کنسول Active Directory Users and Computers مشاهده میکنیم .

همانطور که میبینید ACE#2 مشخص میکند که یوزر Ed.Price برای OU=NewYork مجوز ایجاد کردن یوزر Create User objects و حذف کردن یوزر Delete User objects دارد.

برای پاک یا حذف کردن مجوزهای واگذار شده assigned permissions از فرمان Command زیر استفاده میکنیم. در مثال زیر مجوزهای اختصاص داده شده به یوزر Ed.Price برای OU=NewYork را حذف یا پاک Delete میکنیم.

توجه: با اجرای فرمان، سیستم از شما تائید میخواهد که به تایپ حرف y و فشار دادن Enter دستور اجرا میشود.

Dsrevoke /Remove OU=NewYork,DC=Contoso,DC=Com Contoso\Ed.Price

تمام مجوزهای اختصاص شده assigned permissions یک یوزر User یا یک گروه Group برای یک Organizational Unit – OU مشخص، توسط فرمان زیر حذف میشود.

Dsrevoke /Remove "/root:<DN of the OU>" Domain\sAMAccountName

لینک دانلود برنامه مجانی LIZA

لیزا LIZA یک برنامه مجانی است که توسط آن میتوان Security و Permission و ACL را بر روی اکتیو دایرکتوری Active Directory فقط دید یا آنالیز کرد. در شکل زیر نشان داده میشود که منظور از کلمات اختصار و نوشته ها چیست.

بطور مثال ما از لیزا استفاده میکنیم تا مجوزهای اختصاص شده assigned permissions به یوزر Ed.Price برای را مشاهده کنیم.

با اجرای برنامه، در سمت راست ترکیب یا ساختار اکتیو دایرکتوری را در سمت راست میبینیم. با کلیک کردن بر روی OU=NewYork ، در سمت راست میتوانیم تمام مجوزهای موجود برای OU=NewYork را ببینیم. همانطور که در عکس مشاهده میکنید، نام یوزر Ed.Price در آنجا است.

اگر بخواهیم جزئیات ACE مربوط به یوزر Ed.Price را ببینم، روی یکی از این مجوزها کلیک کرده (روی اسم یوزر)، سپس در سمت راست، پایین دکمه Show ACL را کلیک میکنیم.

حالا مشاهده میکنید که یوزر Ed.Price بر روی OU=NewYork دارای مجوز ساختن یوزر Create User objects و پاک کردن یوزر Delete User objects را دارد.

استفاده از فایل Batch

گاهی اوقات احتیاج داریم که ببینیم فقط برای کدام OU ها یوزر مجوزهای واگذار شده دارد، به عبارتی فقط نام OU هایی که یوزر مجوزهای واگذار شده دارد ببینیم. برای این کار میتوانیم از فایل DelegateView.bat استفاده کنیم.

یک فایل با اسم DelegateView.bat و محتوای زیر ایجاد کنید:

@ECHO OFF

SET ACCOUNT=%1
IF NOT DEFINED ACCOUNT GOTO USAGE

FOR /F "usebackq delims=XXX tokens=1" %%i IN (`dsquery ou`) DO (
dsacls %%i | find /I "%1" > nul
IF ERRORLEVEL 1 (
echo Account %1 has no explicit entries in DACL
) ELSE (
echo Account %1 has explicit entries in the DACL of %%i
)
)

GOTO END

:USAGE
echo.
echo USAGE: %0 [account name or security group]
echo.
echo EXAMPLE: %0 Administrator

:END

بطور مثال OU هایی که یوزر Ed.Price برای آنها مجوزهای واگذار شده دارد با استفاده از DelegateView.bat میبینیم. نحوه استفاده از DelegateView.bat به صورت زیر میباشد.

DelegateView.bat Contoso\Ed.Price

اگر میخواهید خروجی در یک فایل txt ذخیره شود، به صورت زیر فرمان را اجرا میکنیم .

DelegateView.bat Contoso\Ed.Price >DelegateOUs.txt

استفاده از LDP.exe

برای دیدن ACEs های موجود بر روی یک OU با استفاده از LDP.exe به صورت زیر عمل میکنیم.

LDP.exe را اجرا میکنیم، سپس Connect را کلیک کرده و نام دومین کنترولر را مینویسیم.

نام دومین کنترولر ما DC1.Contoso.Com در اینجا میباشد، سپس OK را کلیک میکنیم.

سپس Bind را کلیک میکنیم.

با باز شدن پنجره Bind ، قسمت Bind as currently logged on user را انتخاب کرده (اگر با اکانت ادمین لاگین نکردید، در قسمت یوزر و پسورد آن را وارد کنید، در اینجا من چون با اکانت ادمین به سرور لاگین کردم، این گزینه را انتخاب کردم) و OK را کلیک میکنیم.

 

از قسمت View ، باید Tree را انتخاب کنید، با باز شدن پنجره جدید نام LDAP مربوط به OU مربوطه که OU=NewYork,DC=Contoso,DC=Com میباشد را مینویسیم و OK را کلیک میکنیم.

حال روی OU کلیک سمت راست کرده، Advanced را کلیک میکنیم و سپس Security Descriptor را کلیک میکنیم .

با باز شدن پنجره Security Descriptor نام LDAP مربوط به OU مربوطه که OU=NewYork,DC=Contoso,DC=Com میباشد را مینویسیم و OK را کلیک میکنیم .

حال مجوزهای واگذار شده مروبط به یوزر Ed.Price و تمام مجوزهای دیگر مربوط به این OU=NewYork را میتوانیم ببینیم.

در ضمن ما میتوانیم حال ACE را برای این OU اضافه ADD ACE ، حذف Delete ACE یا ویرایش Edit ACE کنیم.

بطور مثال روی یوزر Ed.Price کلیک کرده، سپس دکمه Edit ACE را کلیک کرده و حال میبینیم که یوزر Ed.Price اجازه ایجاد Create و حذف Delete یوزر User objects برای این OU دارد.

استفاده از ACLDiag.exe

فرمان ACLDiag در پکیج Support Tools ویندوز سرور 2003 میباشد.

Windows Server 2003 Service Pack 2 32-bit Support Tools Jump

این فرمان ACLDiag برای ترجمه مجوزهای واگذار شده Delegation Permissions از فایل delegwiz.inf استفاده میکند.

یادمان باشد ما فرمان ACLDiag را با پارامتر /chkdeleg استفاده میکنیم.

حال برای فهمیدن، یک مثال میزنیم. در این مثال ما میخواهیم ببینیم که چه کسانی مجوزهای واگذار شده Delegation Permissions برای OU=Employee را دارند و این مجوزها چیست. برای این کار از فرمان زیر استفاده میکنیم:

ACLDiag.exe "OU=Employee,DC=Contoso,DC=Com" /chkdeleg

توجه کنید که برای دیدن مجوزهای واگذار شده Delegation Permissions ما از قسمت Delegation Template Diagnosis به بعد نگاه میکنیم (طبق شکل بالا). اما همانطور که در شکل میبینیم یوزر Ed.Price دارای مجوزهای واگذار شده به نام های dsuiwiz.dll,-301@ و dsuiwiz.dll,-302@ و غیره دارد، منظور از این نوشته ها چیست؟ نگران نباشید، به شما رمز یا لم آن را میگویم !!!

ما باید فایل delegwiz.inf را ویرایش کنیم. اگر شما تا کنون این فایل را ویرایش نکرده یا تغییر نداده باشد، نتایج به صورت بالا نشان داده میشوند . برای تغییر فایل و استفاده از 70 قالب template آماده مایکروسافت از آرتیکل پایین استفاده کنید.

اضافه کردن آیتمهای Active Directory Delegation

حال توضیح کوتاه در مورد نوشته های نامفهوم، اگر ما فایل delegwiz.inf را با ادیتور باز کنیم، دارای ۱۳ الگو template میباشد و همانطور که در شکل پایین مشاهده میکنید برای الگو template اول Description با عبارت “@dsuiwiz.dll,-301” ست شده است.

حال من این “@dsuiwiz.dll,-301” را پاک میکنم و Description که خودم میخواهم را مینویسم Create, delete, and manage user accounts و همینطور همین کار را برای الگوهای دیگر انجام میدهم (توجه کنید که اگر از آن ۷۰ الگوی آماده استفاده کردید و تغییرات را انجام دادید، لازم به این کار نیست)، مانند شکل پایین.

حال دوباره فرمان را اجرا میکنم:

ACLDiag.exe "OU=Employee,DC=Contoso,DC=Com" /chkdeleg

حال میبینم که Delegation Permissions برای یوزر Ed.Price به صورت درست و قابل مفهوم نشان داده میشوند.

استفاده از AdFind

Download AdFind Jump

AdFind توسط یکی از بزرگان MVP به نام Joe Richards نوشته شده. او همچنین ابزارهای رایگان دیگری نیز نوشته است که میتوانید از سایت زیر دانلود کنید.

Joe Richards Free Tools Jump

حال ما چند مثال برای استفاده از این فرمان AdFind را در پایین نشان میدهیم.

من فرمان زیر را اجرا میکنم تا مجوزهای واگذار شده مربوط به یوزر Ed.Price برای OU=Employee را ببینم.

AdFind -b "OU=Employee,DC=Contoso,DC=Com" -s base nTSecurityDescriptor -sddl++ -resolvesids

توضیح کوتاه در مورد پارامترهای فرمان اجرا شده برای دیدن تمام پارامترها با مثال به سایت زیر مراجعه کنید

AdFind Usage

1- -b 
"<base dn>"

2- -s scope 
Scope of search. Base, One[Level], Sub[tree].

3- attribute 
nTSecurityDescriptor is security descriptor for the schema object.

4- -sddl++ 
Decode of security descriptors. This will take an sd such as ntSecurityDescriptor and decode it to sddl.

5- -resolvesids
Resolve sids to names

خوب همانطور که در شکل بالا میبینیم، علاوه بر مجوزهای واگذار شده یوزر Ed.Price ، سایر مجوزهای دیگر نیز که برای OU=Employee ست شده نشان داده میشود.

در زمانی که ما احتیاج به این داریم که فقط مجوزهای واگذار شده مربوط به یکOU و برای یک یوزر User یا گروه Group مشخص نمایش داده شود، از فرمان زیر استفاده میکنیم. بطور مثال فقط در فرمان زیر مجوزهای واگذار شده یوزر Ed.Price برای OU=Employee نشان داده میشود .

Adfind -b "OU=Employee,DC=Contoso,DC=Com" -s subtree –f (objectClass=organizationalUnit) nTSecurityDescriptor -sddl++ -resolvesids -sddlfilter ;;;;;"CONTOSO\Ed.Price" -sddlnotfilter ;inherited -recmute

حال اگر من مجوزهای واگذار شده یوزر Ed.Price برای تمام OU های دومین را بخواهم ببینم، از فرمان زیر استفاده میکنم.

Adfind -b "DC=Contoso,DC=Com" -s subtree –f (objectClass=organizationalUnit) nTSecurityDescriptor -sddl++ -resolvesids -sddlfilter ;;;;;"CONTOSO\Ed.Price" -sddlnotfilter ;inherited -recmute

همانطور که مشاهده میکنیم، در دومین فقط Ed.Price دارای مجوزهای واگذار شده برای OU های NewYork و Employee را میباشد .

حالا که فهمیدم میتوانم از فیلترهای LDAP در فرمان AdFind استفاده کنم، از این فن یا لم استفاده میکنم و مجوزهای واگذار شده یوزر Ed.Price برای کامپیوترهای داخل دومین را پیدا و مشاهده میکنم. برای اینکار فرمان زیر را اجرا میکنم .

Adfind -b "DC=Contoso,DC=Com" -s subtree –f (objectClass=computer) nTSecurityDescriptor -sddl++ -resolvesids -sddlfilter ;;;;;"CONTOSO\Ed.Price" -sddlnotfilter ;inherited -recmute

همانطور که در شکل مشخص است یوزر Ed.Price دارای مجوزهای واگذار شده برای کامپیوترهای CLIENT1 و NPS در دومین میباشد.

استفاده از Dsacls

Dsacls یکی دیگر از فرمان هایی است که با آن میتوان مجوزهای اکتیو دایرکتوری را مدیریت کرد. این فرمان Dsacls در ویندوز سرور 2003 داخل پکیج Support Tools میباشد اما از ویندوز سرور 2008 به بعد در داخل ویندوز گنجانده شده است.

ما میتوانیم با اجرای فرمان زیر تمام مجوزهای ست شده بر روی OU=Employee را ببینیم.

Dsacls OU=Employee,DC=Contoso,DC=Com

اگر بخواهیم مجوزهای نشان داده شده در عکس بالا را در یک فایل .TXT ذخیره کنیم، از فرمان زیر استفاده میکنیم.

Dsacls OU=Employee,DC=Contoso,DC=Com > C:\Dsacls.txt

اگر بخواهم به هر دلیل تمام مجوزهای ست شده بر روی OU=Employee را به حالت Default بازگردانی کنم، از فرمان زیر استفاده میکنم.

Dsacls OU=Employee,DC=Contoso,DC=Com /S

اگر بخواهم به هر دلیل مجوزهای ست شده برای یک یوزر User یا یک گروه Group خاص که بر روی OU خاص ست شده را حذف کنم، از فرمان زیر استفاده میکنم (بطور مثال برای یوزر Ed.Price

Dsacls OU=Employee,DC=Contoso,DC=Com /R Contoso.com\Ed.Price

همچنین در فرمان بالا ما میتوانیم از userPrincipalName – UPN نیز استفاده کنیم که فرمان به صورت زیر میباشد.

Dsacls OU=Employee,DC=Contoso,DC=Com /R Ed.Price@Contoso.com
منبع social.technet.microsoft

ارسال یک نظر

آدرس ایمیل شما منتشر نخواهد شد.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.