אם אתה מקצוען בטכנולוגיות המידע ומתמצא בקושי עם הגדרת הרשאות מערכת הקבצים עבור הארגון שלך, יש לך מזל. ניהול ההרשאות ב-NTFS באמצעות ממשק גרפי דורש הוצאת זמן, במיוחד כאשר עובדים עם מספר רב של משתמשים או קבוצות. ממש כאן נכנס PowerShell כדי לשפר את המצב. איך? באמצעות המודול Microsoft.PowerShell.Security.
PowerShell מציע שני פקודות cmdlets במיוחד לעבודה עם לוחות בקרה גישה (ACL) בשם Get-ACL
ו-Set-ACL
. שתי פקודות אלו מסוגלות לאחזר ולהקצות כמעט כל רמת הרשאות NTFS, והכל יופיע במדריך זה. אם ברצונך להיות יעיל יותר ולהיות מיידית שימושי בניהול ההרשאות ב-NTFS, המשך לקרוא.
אין לך זמן לקרוא? אין בעיה! צפה בסרטון הלוואי מ-TechSnips.io של Anthony Howell למטה:
ניהול ודיווח על הפעלת התקן והתקנה, אקסצ'יינג' ו-Microsoft 365 עם ManageEngine ADManager Plus. הורד גרסה דמו חינם!
דרישות מוקדמות
כדי להמשיך עם הדוגמאות במדריך זה, יש לך צורך ב:
- PowerShell 7 או Windows PowerShell 5.1
- A basic understanding of NTFS file and folder permissions
יצירת קבצים/תיקיות לבדיקה
המדריך הזה יוקם סביב "מעבדה" פשוטה או תיקייה בודדת. תלמד איך לעבוד עם הרשאות NTFS בפוורשל מההתחלה; אין צורך בעבודה נוספת מצידך.
- כדי להתחיל, פתח ישיבת פוורשל כמנהל.
- צור תיקיה ריקה בשם "Share" באיזשהו מקום במערכת הקבצים שלך. בדוגמאות הבאות, נניח שהתיקיה נמצאת ב- C:\Share. זה ישמור על הדוגמאות קצרות וקלות יותר לעקיפה. תוכל ליצור את התיקיה הזו על ידי העתקת הקוד הבא:
3. צור תיקיה בשם C:\Share\Assets.
4. צור קובץ בשם client_list.txt בתיקית C:\Share.
5. צור קובץ בשם client_projects.txt בתיקית C:\Share.
6. לבסוף, הקצה משתנה עבור נתיב התיקיה "Share". יצירת משתנים חוסכת בהקלדה והופכת את הנתיב לקל לשימוש מחדש. בהנחה שאתה משתמש ב- C:\Share, העתק את דוגמת הקוד הבאה ליישוב פוורשל שלך:
7. לחץ Enter. כעת יש לך ספרייה ריקה ושמרת את הנתיב הזה כמשתנה.
צפייה בהרשאות NTFS עם Get-Acl
PowerShell מאפשר לך לצפות במהירות בהרשאות NTFS באמצעות פקודת Get-Acl. בסעיפים הבאים, תלמד כיצד להשתמש בפקודה כדי לצפות בהרשאות NTFS לקובץ או תיקייה.
רשימת בקרת גישה (ACL היא רשימת רשומות של בקרת גישה (ACE). כל ACE ב-ACL מזהה אמון וצורף את ההרשאות לגישה שמותרות, נדחות או מבודקות. דיסקריפטור לאבטחה עבור אובייקט בטחוני יכול לכלול שני סוגי ACL: DACL ו-SACL.
הצגת ההרשאות של NTFS
באופן מסורתי, תראה את ACL על ידי לחיצה ימנית על התיקייה C:\Share, לחיצה על מאפיינים, בחירה בלשונית אבטחה, ולחיצה על מתקדם. ניתן לראות דוגמה לאיך ה-GUI מציג את ההרשאות למטה.

הדוגמה למעלה כוללת רשומות הרשאות ומאפיינים ממוספרים. בדוק אותם היטב מכיוון שתראה את ההשוואה מאוחר יותר בסעיף זה.
באמצעות התיקייה שיצרת מראש, הצג את ההרשאות הנוכחיות של NTFS לתיקייה באמצעות Get-Acl
.
עכשיו אתה אמור לראות את הנתיב, בעלים ופרטי הגישה בתמונת המסך הבאה.

המאפיין Access
המוצג בצילום המסך לעיל מכיל מידע נוסף בנוגע ל-ACL, אך הוא מתגלגל מעבר למסך כפי שמוצג על ידי הנקודות המשולשות בסופו של FullControl למעלה. ישנה דרך טובה יותר להציג את המאפיין הזה על ידי סגירת הפקודה הקודמת בסוגריים עגולים או סוגריים כדי להציג את Access
מאפייני האובייקט. חפש רק את המאפיין Access
באובייקט זה על ידי הרצת הקוד הבא.
הפקודה לעיל יכולה גם להיות ביטוי באמצעות האובייקט
Access
ובאמצעות הפרמטר-ExpandProperties
:Get-Acl -Path $dir | Select-Object -ExpandProperty Access
כפי שמוצג בצילום המסך הבא, הפלט מסובב כדי להקל על ראות הפקודה את המאפיינים היחידים של Access
:

צפייה במאפייני גישה בדרך הנ"ל יכולה לגרום לפלט של הטרמינל להתגלגל מהר על המסך אם יש לך הרבה יחידות בקרת גישה (ACE). כל יחידה מכילה מאפייני FileSystemRights, AccessControlType, IdentityReference, IsInherited, InheritenceFlags ו-PropagationFlags. כדי להפוך את זה לקצת יותר קריא, צריך לשלוף את האובייקטים ל-Format-Table -AutoSize
. הרץ את הפקודה הבאה.
כפי שניתן לראות בצילום המסך למטה, מאפייני הגישה נקיים ומאורגנים יותר כאשר משתמשים ב-Format-Table -AutoSize
:

בדוק את התכונות ומספר העמודות. שים לב שאלה יש לך אותן התכונות שראית ב- GUI בתחילת המדריך.

סינון עצמיים לגישה
ישנם פעמים שבהן תרצה להיות יותר מדויק בגילוי ההרשאות של NTFS. כדי לעשות זאת, תוכל לסנן ל ACE מסוים, או למצוא תוצאות מסוימות שיש להן הרשאות NTFS שמועברות או מפורשות בתוך ACL באמצעות PowerShell. במקום לגלול את חלון הטרמינל עם העיניים שלך שורה אחר שורה, תוכל להשתמש בתכלת Where-Object
כדי לעשות סינון מסוים.
דוגמת הקוד למטה מסננת אובייקטים שלא מורישים הרשאות NTFS. הדבר נעשה על ידי שימוש ב- Where-Object
עם האופרנד -Not
שמסתכל על האובייקט הנוכחי בצינור $_.
נכס האובייקט של IsInherited
, שמציין אם ה- ACE הוא תוצאה של ירושה ולא הוגדר באופן ברור:
זכור לכלול אובייקטים בצינור ל-
Format-Table -AutoSize
אחרת הפלט יגלול למטה במסך. תקדם את זה להרגל חדש; תודה לי מאוחר יותר!
באמצעות הקוד למטה, החלף את 'שם משתמש'
בשם משתמש אחר כדי לראות תוצאות ספציפיות:
למטה נמצאת דוגמה לאיך יכולות להיראות התוצאות:

בדוגמה לעיל מוצגות כל ה ACE שבהן המאפיין IdentityReference
הוא המשתמש או קבוצת האבטחה שהוענקו לה הרשאות.
המשך ותרגל את מה שלמדת עד כה על Get-Acl. בדוק כמה קבצים ותיקיות שונים במערכת שלך. זה יעזור לך לראות מגוון של תיאוריות אבטחה שונות להקשרים שונים. זה גם יעזור לבנות זיכרון שריר.
בואו נעלה את העניינים קצת ונקצור הרשאות NTFS.
שינוי הרשאות NTFS עם Set-Acl
עכשיו שאתה יכול להציג את הרשאות NTFS, הגיע הזמן להקצות ולשנות הרשאות NTFS באמצעות PowerShell. פקודת ה-cmdlet Set-Acl מקיימת את זה. הסעיפים הבאים ידגימו כיצד להשתמש ב-cmdlet זו בשילוב עם Get-Acl כדי להעתיק, לשנות ירושה ולהסיר הרשאות NTFS מקובץ או מתיקייה.
העתקת הרשאות NTFS
ייתכן ויש לך קובץ או תיקייה שמכילים את רמת ההרשאות של NTFS המתאימה שאתה צריך להשתמש בה ב-ACL חדש. ניתן לחסוך זמן על ידי העתקת הרשאות מקובץ או מתיקייה אחרת.
העתקת ACLs/ACEs קיימים יכולה להפחית שגיאות אנושיות בעת הגדרת הרשאות NTFS, בהנחה שהתיאור האבטחה שאתה מעתיק מתאים ונכון ליעד במקור. כמו שנאמר, "עם כוח גדול מגיעה אחריות גדולה.". תשמור על זה בזיכרון.
ה Consid רה את התמונה המסך הבאה. כאן אתה מסתכל על ה ACL עבור קובץ ב C:\Share בשם Client_List.txt. ה-ACL מכיל את הרמה הנכונה של הרשאות NTFS שאתה רוצה:

עכשיו, שקול את התמונה הבאה. הפעם אתה מסתכל על ה ACL עבור קובץ נוסף ב C:\Share בשם Client_Projects.txt. לקובץ הזה אין את ההרשאות NTFS שאתה רוצה:

עליך להעתיק את ההרשאות NTFS מ Client_List.txt ל Client_Projects.txt. איך אתה יכול לעשות זאת? תשנה את ההרשאות על ידי קבלת ה ACL מ Client_List.txt ואז שימוש ב- Set-Acl
cmdlet עם הפרמטר -AclObject
. כאשר אתה מפעיל את הקוד למטה, כל ה-ACL מ Client_List.txt יועתק ל Client_Projects.txt :
כפי שניתן לראות בתמונה מספר, הקובץ Client_Projects.txt כעת כולל את אותם מדבקי בטחון כמו ב- Client_list.txt.
- קבל ACL קיים מקובץ קיים.
- הגדר את אובייקט ה-ACL שהועתק לקובץ או תיקייה.
- וודא שה-ACL הועתק לקובץ או לתיקייה בצורה נכונה.

אתה רואה כעת שה-ACL זהה לקובץ Client_Projects.txt כמו בקובץ Client_List.txt בעמודה IdentityReference עם AccessControlType מוגדר ל Allow. תשתמש בטכניקה זו גם להקצאת הרשאות NTFS לתיקיות.
בקטע האחרון, העתקת את ההרשאות הקיימות של NTFS מאובייקט קובץ אחד לאחר. הפעם אתה הולך ליצור הרשאות NTFS מתחילה. זה יאפשר לך להקצות הרשאות NTFS שיתקבלו על ידי קובץ או תיקייה.
ראשית, התחל בהקצאת משתנים לשימוש ביצירת אובייקט חדש המשמש על ידי Set-Acl
. עשה זאת בכדי להקל קצת כאשר יידרש להריץ את הפקודה. הקוד למטה בונה את התכונות של ACE שיהפוך להרשאות NTFS שיוקצו לקובץ או לתיקייה:
לאחר מכן, הקצה עוד משתנה שיקבל את ה-ACL הראשוני עבור התיקייה Assets
. לאחר מכן, באמצעות חבר הטיפול AddAccessRule
, הוסף כלל גישה באמצעות המשתנה $ACE
:
אתה מוכן כעת להוסיף את ACE החדש שנוצר ל-ACL של C:\Share\Assets
. כעת השתמש ב-Set-Acl
כדי להחיל את ACE החדש על המדריך המתאים:
לבסוף, בדוק שהמשתמש שבחרת יש הרשאות להציג את המדריך הנדרש באמצעות הקוד למטה:
הסרת הרשאות NTFS
יהיה יום שבו תצטרך להסיר הרשאות NTFS ממשאב.
כדי להסיר הרשאות NTFS, התחל על ידי קבלת ה-ACL הנוכחית עבור הקובץ או התיקייה. בדוגמה זו, הקובץ הוא Client_Projects.txt
:
עכשיו סנן את ACE המסוים שתרצה להסיר. עשה זאת על ידי קריאה לאובייקטי החבר $Acl
ושימוש בפקודת Where-Object
ובמספר אופרנדים:
לאחר מכן, השתמש במשתנה $Acl
שמכיל את תיאורי האבטחה הנוכחיים של ה-ACL, קרא לשיטת RemoveAccessRule
והעבר את אובייקט ה-ACE שנוצר לעיל באמצעות הפקודה New-Object
לשיטה RemoveAccessRule()
. זה יסיר את הרשומה:
חשוב לזכור ששינית את ה-ACL הקיים כאן ועדיין לא שמרת את השינויים.
עכשיו כדי לשמור על השינויים, הפעל את הפקודה Set-Acl
, וספק את הפרמטרים -Path
ו--AclObject
עם הערכים המתאימים של "$dir\Client_Projects.txt"
ו-$Acl
. לאחר שהזנת את הפקודה למטה, לחץ Enter:
ניהול ודיווח על מאגר הנתונים הפעיל, Exchange ו-Microsoft 365 עם ManageEngine ADManager Plus. הורדה לניסיון חינם!
סיכום
במאמר זה, למדת על ניהול הרשאות NTFS בעזרת PowerShell. למדת על שני ה-cmdlets, Get-Acl
ו-Set-Acl
, ועל מה הם עושים עם הרשאות NTFS.
למדת גם כיצד להשתמש בפילטרים כדי לגעת ב-ACE ספציפי ב-ACL לשימוש ב-cmdlets שלמעלה. עם קצת תרגול, תוכל בקלות לנהל יותר בקשות להרשאות NTFS מאי פעם.