แทนที่สิทธิ์ของโฟลเดอร์ด้วย icacls


1

ฉันต้องการแทนที่สิทธิ์ของโฟลเดอร์ ครั้งแรกที่ฉันทำสิ่งนี้:

icacls folder /grant user:(oi)(ci)f

จากนั้นฉันต้องการเปลี่ยนการอนุญาตและการสืบทอดเป็น:

icacls folder /grant:r user:(oi)(io)rx

(oi)(ci)fหลังจากนี้สิทธิ์สำหรับผู้ใช้ยังคงเป็น

ทำไมไม่เปลี่ยนสิทธิ์

การแทนที่การอนุญาตและการสืบทอดด้วย setacl ทำงานได้ตามที่คาดไว้:

setacl -on folder -ot file -actn ace -ace
"n:user;p:read_ex;i:io,so;m:set;w:dacl"

ขอบคุณสำหรับคำตอบ. แต่นี่คือโดยการออกแบบ? หรือนี่คือข้อผิดพลาด? การใช้สวิตช์ ": r" คืออะไรหากวิธีเดียวที่คุณสามารถแน่ใจได้ว่าแทนที่สิทธิ์ (และการสืบทอด) คืออะไร

icacls folder /remove user
icacls folder /grant user:(oi)(io)rx

ฉันได้ทดสอบการทำงานของ "icacls / grant" และฉันพบว่า icacls เขียนรายการสำหรับการสืบทอดทุกประเภท

ลองสิ่งนี้:

md test
icacls test /inheritance:r
icacls test /grant user:f
icacls test /grant:r user:(oi)rx
icacls test /grant:r user:(ci)rx
icacls test /grant:r user:(oi)(ci)rx
icacls test /grant:r user:(ci)(oi)(io)rx
icacls test /grant:r user:(io)(oi)rx
icacls test /grant:r user:(io)(ci)rx

จากนั้นเพื่อดู ACL:

icacls test

ผลลัพธ์คือ:

test PC\user:(F)
     PC\user:(OI)(IO)(RX)
     PC\user:(OI)(RX)
     PC\user:(CI)(IO)(RX)
     PC\user:(CI)(RX)
     PC\user:(OI)(CI)(IO)(RX)
     PC\user:(OI)(CI)(RX)

ดังนั้นฉันจึงพบว่าicacls /grant:rแทนที่สิทธิ์สำหรับการสืบทอดประเภทเดียวกันเท่านั้น ในคำถามเดิมของฉัน:

md test
icacls test /inheritance:r
icacls test /grant user:(oi)(ci)f
icacls test /grant:r user:(oi)(io)rx

การทดสอบ icacls ให้ผลลัพธ์

test PC\user:(OI)(IO)(RX)
     PC\user:(OI)(CI)(F)

และฉันคิดว่า GUI แสดงเฉพาะ (OI) (CI) (F) เพราะมี (OI) (IO) (RX)

ฉันพลาดอะไรไปรึเปล่า? นี่เป็นข้อบกพร่องหรือจากการออกแบบ?


ฉันไม่พบแหล่งข้อมูลที่มีสิทธิ์ซึ่งอธิบายว่าทำไมgrant:rคำสั่งไม่เปลี่ยนสิทธิ์ทั้งหมดสำหรับผู้ใช้ที่ระบุ ฉันเดาว่าเป็นเพราะผู้ดูแลระบบต้องการวิธีแทนที่สิทธิ์ที่เฉพาะเจาะจง + การสืบทอด ACE (เช่นให้สิทธิ์การอ่านเป็นไฟล์เท่านั้น) โดยไม่ต้องแตะ (หรือระบุอีกครั้ง) การอนุญาตอื่น ดูเหมือนว่าจะมีการให้สวิตช์/resetหรือ/removeสวิตช์สำหรับกรณีเมื่อต้องเปลี่ยนสิทธิ์ทั้งหมดสำหรับผู้ใช้ ฉันเห็นด้วยกับข้อความช่วยเหลือ/grant:rของฟังก์ชั่นที่ไม่ครบถ้วนสมบูรณ์
ตัวปลอมตัว Twisty

คำตอบ:


1

คำสั่งแรกของคุณให้สิทธิ์การเข้าถึงแบบเต็มไปยังโฟลเดอร์สำหรับ "โฟลเดอร์โฟลเดอร์ย่อยและไฟล์"

สิทธิ์ที่จะไม่ได้ถูกแทนที่โดยคำสั่งที่สองมันแก่อ่านและปฏิบัติการสิทธิ์สำหรับไฟล์เท่านั้น(OI)(IO)เนื่องจากการใช้การรวมกันที่วัตถุมรดก เห็นได้ชัดว่าคุณไม่สามารถแทนที่การอนุญาตที่ใช้กับ "โฟลเดอร์โฟลเดอร์ย่อยและไฟล์" ด้วยสิทธิ์ที่ใช้กับไฟล์เท่านั้น

ในการแทนที่สิทธิ์การเข้าถึงแบบเต็มด้วยสิทธิ์การอ่านและเรียกใช้งานสำหรับ "โฟลเดอร์โฟลเดอร์ย่อยและไฟล์" ให้ใช้การสืบทอดวัตถุเดียวกันในคำสั่งที่สอง:

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