วิธีแทนที่สิทธิ์และทุกอย่างภายในด้วย icacls บน Windows Server 2012


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 ที่เทียบเท่ากันเพื่อสร้างพฤติกรรมที่เหมือนกันหรือไม่
Mark Allison

3
/grant:rลบสิทธิ์ที่ชัดเจนที่มีอยู่เท่านั้นไม่ใช่สิทธิ์ที่ได้รับมาจากโฟลเดอร์ด้านบน คุณจะต้องรวม/inheritance:rเช่นกัน
TheCleaner

1
หาก CACLS ทำงานนั้นไม่มีเหตุผลที่คุณไม่สามารถใช้งานได้ไม่ว่าจะถูกเลิกใช้หรือไม่
joeqwerty

@joeqwerty จริง แต่รู้สึกสกปรกมาก cacls เองก็ส่งคืนข้อความเพื่อใช้ icacls ดังนั้นจะต้องมีเหตุผลที่ดีมาก NOTE: Cacls is now deprecated, please use Icacls.
Mark Allison

2
@joeqwerty cacls.exeสามารถตั้งค่า ACL ในลำดับที่ไม่ถูกต้องอาจทำให้เกิดปัญหา (ฉันจะปล่อยให้มันเป็นแบบฝึกหัดสำหรับผู้อ่าน)
Craig

คำตอบ:


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ตั้งค่าสถานะ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.