آموزش شبکهMicrosoft

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

Active Directory

چگونه مجوزهای واگذار شده در اکتیو دایرکتوری را ببینیم یا حذف کنیم؟ برای دیدن 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
Active Directory
Active Directory

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

Active Directory Users and Computers
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 دستور اجرا میشود.

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

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

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

لیزا LIZA
لیزا LIZA

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

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

لیزا LIZA
لیزا LIZA

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

لیزا LIZA
لیزا LIZA

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

لیزا LIZA
لیزا LIZA

استفاده از فایل 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

 

DelegateView.bat Contoso\Ed.Price

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

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

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

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

LDP.exe
LDP.exe

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

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

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

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

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

LDP.exe
LDP.exe

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

LDP.exe
LDP.exe
LDP.exe
LDP.exe

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

Security Descriptor
Security Descriptor

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

Security Descriptor
Security Descriptor

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

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

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

ACE
ACE

استفاده از 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
Active Directory
Active Directory
Active Directory
Active Directory

توجه کنید که برای دیدن مجوزهای واگذار شده 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” ست شده است.

Active Directory
Active Directory

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

Active Directory
Active Directory

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

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

حال میبینم که 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 ست شده نشان داده میشود.

Active Directory
Active Directory

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

Active Directory
Active Directory

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

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

LDAP
LDAP

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

استفاده از Dsacls

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

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

Dsacls
Dsacls

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

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

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

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

منبع: Technet Microsoft

Shares:

2 Comments

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *