आप विंडोज पर NTFS अनुमतियों को प्रबंधित करने के लिए अंतर्निहित iCACLS टूल का उपयोग कर सकते हैं। icacls.exe कमांड लाइन टूल आपको NTFS फाइल सिस्टम पर फाइलों और फोल्डर्स के लिए एक्सेस कंट्रोल लिस्ट (ACLs) प्राप्त करने या बदलने की अनुमति देता है। इस लेख में, हम iCACLS के साथ विंडोज पर NTFS अनुमतियों को प्रबंधित करने के लिए उपयोगी कमांड्स देखेंगे।
फाइल और फोल्डर अनुमतियों को देखने और सेट करने के लिए iCACLS का उपयोग करना
NTFS वॉल्यूम पर किसी भी ऑब्जेक्ट के लिए वर्तमान एक्सेस अनुमतियों को निम्नानुसार प्रदर्शित किया जा सकता है:
icacls 'C:\Share\Veteran\'
कमांड उन यूजर्स और ग्रुप्स की सूची लौटाएगा जिन्हें एक्सेस अनुमतियां दी गई हैं। अनुमतियों को संक्षिप्त रूपों का उपयोग करके निर्दिष्ट किया जाता है:
- F – पूर्ण एक्सेस
- M – संशोधन एक्सेस
- RX – पढ़ें और निष्पादित एक्सेस
- R – केवल पढ़ने की एक्सेस
- W – केवल लिखने की एक्सेस
- D – हटाएं
विरासत अधिकार एक्सेस अनुमतियों से पहले निर्दिष्ट किए जाते हैं (विरासत अनुमतियां केवल फोल्डर्स पर लागू होती हैं):
- (OI) – ऑब्जेक्ट इनहेरिट
- (CI) – कंटेनर इनहेरिट
- (IO) – केवल इनहेरिट
- (I) – पैरेंट कंटेनर से अनुमतियों को इनहेरिट करना
icacls के साथ आप फोल्डर अनुमतियों को बदल सकते हैं।
"resource\mun-fs01_Auditors" ग्रुप को फोल्डर पर पढ़ें और निष्पादित (RX) अनुमतियां देने के लिए:
icacls 'C:\Share\Veteran\' /grant resource\mun-fs01_Auditors:RX
किसी ग्रुप को डायरेक्टरी ACL से हटाने के लिए:
icacls 'C:\Share\Veteran\' /remove resource\mun-fs01_Auditors
icacls के साथ आप पैरेंट फोल्डर से NTFS अनुमतियों की विरासत को सक्षम कर सकते हैं:
icacls 'C:\Share\Veteran\' /inheritance:e
या सभी विरासत में मिले ACEs को हटाकर विरासत को अक्षम करें:
icacls 'C:\Share\Veteran\' /inheritance:r
आप icacls.exe का उपयोग फाइल या फोल्डर के स्वामित्व को बदलने के लिए कर सकते हैं:
icacls 'C:\Share\Veteran\' /setowner resource\j.smith /T /C /L /Q
फोल्डर NTFS अनुमतियों का बैकअप (एक्सपोर्ट) कैसे करें?
NTFS फोल्डर (या शेयर्ड नेटवर्क फोल्डर) पर अनुमतियों में महत्वपूर्ण बदलाव करने से पहले (मूव, ACLs अपडेट, रिसोर्स माइग्रेट), पुरानी अनुमतियों का बैकअप लेना उचित है। यह कॉपी आपको मूल सेटिंग्स पर वापस जाने की अनुमति देगी, या कम से कम किसी विशिष्ट फाइल/डायरेक्टरी के लिए पुरानी अनुमतियों को स्पष्ट करेगी।
आप वर्तमान NTFS डायरेक्टरी अनुमतियों को एक्सपोर्ट/इम्पोर्ट करने के लिए icacls.exe टूल का उपयोग कर सकते हैं। किसी विशिष्ट फोल्डर के लिए सभी ACLs प्राप्त करने के लिए (सब-डायरेक्टरीज और फाइल्स सहित), और उन्हें टेक्स्ट फाइल में एक्सपोर्ट करने के लिए, निम्न कमांड चलाएं:
icacls g:\veteran /save c:\backup\veteran_ntfs_perms.txt /t /c

फाइलों और फोल्डर्स की संख्या के आधार पर, अनुमतियों का एक्सपोर्ट काफी लंबा समय ले सकता है। कमांड निष्पादित होने के बाद, फाइलों के सफल या असफल प्रसंस्करण की संख्या पर आंकड़े प्रदर्शित किए जाएंगे।
सफलतापूर्वक संसाधित 3001 फाइलें; 0 फाइलों को संसाधित करने में विफल
किसी भी टेक्स्ट एडिटर का उपयोग करके veteran_ntfs_perms.txt फाइल खोलें। जैसा कि आप देख सकते हैं, इसमें एक डायरेक्टरी में फाइलों और फोल्डर्स की पूरी सूची होती है, और प्रत्येक आइटम में SDDL (सिक्योरिटी डिस्क्रिप्टर डेफिनिशन लैंग्वेज) फॉर्मेट में वर्तमान अनुमतियां निर्दिष्ट होती हैं।
उदाहरण के लिए, फोल्डर रूट के लिए वर्तमान NTFS अनुमतियां निम्नानुसार हैं:
D:PAI(A;OICI;FA;;;BA)(A;OICIIO;FA;;;CO)(A;OICI;0x1200a9;;;S-1-5-21-2340243621-32346796122-2349433313-23777994)(A;OICI;0x1301bf;;;S-1-5-21-2340243621-32346796122-2349433313-23777993)(A;OICI;FA;;;SY)(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)S:AI
यह स्ट्रिंग कुछ ग्रुप्स या यूजर्स के लिए एक्सेस का वर्णन करती है। हम SDDL सिंटैक्स पर विस्तार से विचार नहीं करेंगे (SDDL फॉर्मेट पर "विंडोज में सर्विस अनुमतियों को कैसे देखें और संशोधित करें?" लेख में संक्षेप में चर्चा की गई थी)। आइए SDDL के एक छोटे से टुकड़े पर ध्यान केंद्रित करें, केवल एक ऑब्जेक्ट का चयन करके:
(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)
A – एक्सेस प्रकार (अनुमति)
OICI – विरासत फ्लैग (ऑब्जेक्ट इनहेरिट + कंटेनर इनहेरिट)
FA – अनुमति प्रकार (SDDL_FILE_ALL – सभी अनुमत)
S-1-5-21-2340243621-32346796122-2349433313-24109193 – वह SID जिस खाते या डोमेन ग्रुप के लिए अनुमतियां सेट की गई हैं। SID को खाते या ग्रुप नाम में बदलने के लिए, निम्न पावरशेल कमांड का उपयोग करें:
$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2340243621-32346796122-2349433313-24109193")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value
या निम्न कमांड्स में से एक का उपयोग करें:
Get-ADUser -Identity SID
या
Get-ADGroup -Identity SID
इस प्रकार, आपने पाया कि यूजर corp\dvivar के पास इस डायरेक्टरी पर फुल कंट्रोल अनुमतियां थीं।
iCacls के साथ NTFS अनुमतियों को रिस्टोर कैसे करें?
आप पहले से बनाई गई veteran_ntfs_perms.txt फाइल का उपयोग करके फोल्डर पर NTFS अनुमतियों को रिस्टोर कर सकते हैं। ACL बैकअप फाइल में मानों के अनुसार डायरेक्टरी में ऑब्जेक्ट्स पर NTFS अनुमतियां सेट करने के लिए, यह कमांड चलाएं:
icacls g:\ /restore c:\backup\veteran_ntfs_perms.txt /t /c
सभी अनुमतियों के रिकवर होने के बाद, संसाधित फाइलों की संख्या पर आंकड़े भी प्रदर्शित किए जाएंगे।
ध्यान दें कि बैकअप ACL फाइल में सापेक्ष, निरपेक्ष नहीं, फाइल पथ होते हैं। इसका मतलब है कि आप फोल्डर को अलग ड्राइव/डायरेक्टरी में ले जाने के बाद भी उस पर अनुमतियों को रिस्टोर कर सकते हैं।
NTFS अनुमतियों को डिफ़ॉल्ट पर रीसेट करना
आप icacls टूल का उपयोग करके फोल्डर अनुमतियों को रीसेट कर सकते हैं (साथ ही नेस्टेड फाइल्स और सब-डायरेक्टरीज)।
icacls C:\share\veteran /reset /T /Q /C
यह कमांड निर्दिष्ट ऑब्जेक्ट के लिए विरासत में मिली NTFS अनुमतियों को सक्षम करेगा, और किसी भी अन्य ACLs को हटा देगा।
एक फोल्डर से दूसरे फोल्डर में NTFS अनुमतियों को कॉपी करना
आप ACLs बैकअप वाली टेक्स्ट फाइल का उपयोग करके एक डायरेक्टरी से दूसरी डायरेक्टरी में NTFS अनुमतियों को कॉपी कर सकते हैं।
पहले, सोर्स फोल्डर की NTFS अनुमतियों का बैकअप लें:
icacls 'C:\Share\Veteran' /save C:\PS\save_ntfs_perms.txt /c
और फिर सेव की गई ACLs को टारगेट फोल्डर पर लागू करें:
icacls D:\Share /restore C:\PS\save_ntfs_perms.txt /c
यह तब काम करेगा जब सोर्स और डेस्टिनेशन फोल्डर्स का नाम समान हो। क्या होगा यदि टारगेट फोल्डर का नाम अलग है? उदाहरण के लिए, आपको D:\PublicDOCS फोल्डर में NTFS अनुमतियों को कॉपी करने की आवश्यकता है।
सबसे आसान तरीका है save_ntfs_perms.txt फाइल को नोटपैड में खोलें और फोल्डर नाम संपादित करें। Veteran नाम को PublicDOCS से बदलने के लिए रिप्लेस फंक्शन का उपयोग करें।
फिर फाइल से NTFS अनुमतियों को इम्पोर्ट करें और उन्हें टारगेट फोल्डर पर लागू करें:
icacls D:\ /restore C:\PS\save_ntfs_perms.txt /c
पावरशेल का उपयोग करके एक फोल्डर से दूसरे फोल्डर में NTFS अनुमतियों को कॉपी करना और भी आसान है:
Get-Acl -Path 'C:\Share\Veteran' | Set-Acl -Path 'E:\PublicDOCS'