विंडोज सर्वर 2012 पर icacls के साथ अनुमतियों और सब कुछ को अंदर कैसे बदलें?


15

Windows Server 2012 R2 और Windows Server 2008 R2 का उपयोग करना।

मेरे पास एक फोल्डर है, जिसे C:\temp\testमैं SYSTEMएक यूजर और सभी फाइलों और सबडायरेक्टरीज तक पहुंच प्रदान करना चाहता हूं , और कुछ और भी निकाल सकता हूं । मैंने इस आदेश की कोशिश की है, लेकिन सभी मौजूदा अनुमतियां बनी हुई हैं:

मौजूदा अनुमतियां हैं:

Access : NT AUTHORITY\SYSTEM Allow  FullControl
         BUILTIN\Administrators Allow  FullControl
         BUILTIN\Users Allow  ReadAndExecute, Synchronize
         BUILTIN\Users Allow  AppendData
         BUILTIN\Users Allow  CreateFiles
         CREATOR OWNER Allow  268435456

मैं सभी ACL को छोड़कर SYSTEM, और जोड़ना चाहता हूं<DOMAIN>\<USER>

मैंने इस आदेश की कोशिश की:

icacls c:\temp\test /grant:r <DOMAIN>\<USER>:(OI)(CI)F /t

processed file: c:\temp\test
Successfully processed 1 files; Failed processing 0 files

जब मैं बाद में अनुमतियों को देखता हूं, <DOMAIN>\<USER>तो सही अनुमति होती है, लेकिन बाकी सभी बनी रहती हैं। मैंने सोचा कि /grant:rसभी अनुमतियों को बदल दिया? क्या आप जानते हैं कि अन्य सभी अनुमतियों को हटाने के लिए मुझे कौन सी कमांड चलाने की आवश्यकता है?


यह कमांड वास्तव में वही करता है जो मैं चाहता हूं, cacls c:\temp\test /t /g <DOMAIN>\<USER>:Fलेकिन मैंने सुना है कि icacls ने इसे उलट दिया है, क्या कोई मुझे समान व्यवहार का उत्पादन करने के लिए बराबर icacls संस्करण दिखा सकता है?
मार्क एलीसन

3
/grant:rकेवल मौजूदा स्पष्ट अनुमतियाँ निकालता है, ऊपर वाले फ़ोल्डर से विरासत में नहीं मिला है। आपको भी शामिल करना होगा /inheritance:r
क्लेनर

1
यदि CACLS काम करता है तो कोई कारण नहीं है कि आप इसका उपयोग नहीं कर सकते, चाहे वह पदावनत किया गया हो या नहीं।
25:30 बजे joeqwerty

@joeqwerty सच है लेकिन यह इतना गंदा लगता है। cacls स्वयं भी icacls का उपयोग करने के लिए एक संदेश देता है, इसलिए एक बहुत अच्छा कारण होना चाहिए। NOTE: Cacls is now deprecated, please use Icacls.
मार्क एलीसन

2
@joeqwerty cacls.exeACL के गलत क्रम में सेट कर सकता है, संभावित रूप से समस्याएं पैदा कर रहा है (मैं इसे पाठक के लिए एक अभ्यास के रूप में छोड़ दूँगा)।
क्रेग

जवाबों:


16

जैसा कि उल्लेख टिप्पणी है, आपको /inheritance:rविरासत में मिली अनुमतियों को हटाने के लिए स्विच का उपयोग करना होगा ।

/grant:r केवल स्पष्ट अनुमतियाँ निकालता है।

icacls c:\temp\test /inheritance:r /grant:r <DOMAIN>\<USER>:(OI)(CI)F /T

अनुदान भी SYSTEM:

icacls c:\temp\test /inheritance:r /grant:r <DOMAIN>\<USER>:(OI)(CI)F /grant:r SYSTEM:(OI)(CI)F /T

7

पैरामीटर /grant:rमेरे लिए काम नहीं किया। मुझे /resetकेवल इनहेरिटेंस के लिए अनुमतियों को वापस करने के लिए उपयोग करना पड़ा और फिर इनहेरिट की गई अनुमतियों को निकालना पड़ा। /tध्वज के साथ उपनिर्देशिकाएँ बदलना न भूलें ।

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