एक फ़ाइल की सुरक्षा अनुमतियों को दूसरे में कॉपी करें


19

मैं किसी फ़ाइल की अनुमतियों को दूसरे में दोहराना चाहूंगा। मैं डेटा की प्रतिलिपि नहीं बनाना चाहता, केवल अनुमतियाँ।

उदाहरण के लिए, मैंने एक नई फ़ाइल बनाई और यह चाहता हूं कि पहले से मौजूद किसी अन्य फ़ाइल की तरह ही अनुमतियाँ हों।


एक और फ़ाइल के रूप में एक ही अनुमति, लेकिन वे जिस निर्देशिका में हैं, उससे अलग?
साइकोडाटा

जवाबों:


28

आप इसे कुछ चरणों में icacls और एक टेक्स्ट एडिटर के साथ कर सकते हैं ।

सबसे पहले आपको मूल फ़ाइल की अनुमतियों को सहेजना होगा

icacls C:\test\file1.bin /save perms.txt

आपको perms.txtजिस भी फोल्डर में भाग करना है icacls, उसमें आपके द्वारा बनाई गई फाइल को एडिट करना होगा । फाइल कुछ इस तरह दिखनी चाहिए:

file1.bin
D:AI(A;;0x1301bf;;;BU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)

आप 2 पंक्ति पर सभी सामान को अनदेखा कर सकते हैं, हम सभी के बारे में पहली पंक्ति है। file1.binअपना नया फ़ाइल नाम बदलें file2.binऔर फ़ाइल को सहेजें।

अब आपको केवल 2 फ़ाइल पर फ़ाइल अनुमतियों को पुनर्स्थापित करने की आवश्यकता है, ध्यान दें कि हमने इस बार फ़ाइल नाम शामिल नहीं किया था। (यदि आपको कोई त्रुटि मिलती है जो कहती है कि " संदर्भित सभी विशेषाधिकार या समूह कॉलर को नहीं सौंपे जाते हैं। " प्रोग्राम को फिर से एक उन्नत कमांड प्रॉम्प्ट में चलाएं।)

icacls C:\test\ /restore perms.txt

हो सकता है कि इन्हें स्क्रिप्ट में डालकर कुछ हद तक कार्य को स्वचालित किया जाए?
साइकोडाटा

2
यह किया जा सकता है, लेकिन मैं अपने सिर के ऊपर से सोच भी नहीं सकता कि चरण 2 को आसानी से कैसे किया जाए। वैसे भी अगर मैं इसे स्क्रिप्ट करने जा रहा था, तो मैं बस पॉवर्सशेल में पूरी चीज का उपयोग करूंगा File.GetAccessControl()औरFile.SetAccessControl()
स्कॉट चैंबरलेन

4

इसे बैच में बनाने के लिए (सबफ़ोल्डर से एक ही ड्राइव के सभी सिक्योरिटी पेमिशन को कॉपी करें या किसी अन्य ड्राइव पर एक ही फ़ोल्डर / फ़ाइल को किसी अन्य ड्राइव पर फ़ाइल करें), cpdacls.batइस सामग्री के साथ एक, कहें, फ़ाइल बनाएँ :

@echo off
for /r %1 %%f in (.) do call :icacls_one %%f %2

goto :eof

:icacls_one

icacls %1\*.* /save %TEMP%\perms.txt
icacls %2.%~pnx1 /restore %TEMP%\perms.txt
del /q %TEMP%\perms.txt

और फिर इसे ऐसे ही चलाएं cpdacls.bat e:\ f:\

ध्यान दें कि गंतव्य फ़ोल्डर में फ़ोल्डर संरचना, स्रोत फ़ोल्डर में फ़ोल्डर संरचना के समान ही होनी चाहिए, इसकी जड़ से ली गई है , यह निर्भर नहीं करता है कि आपने स्रोत फ़ोल्डर के रूप में क्या सबफ़ोल्डर निर्दिष्ट किया है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.