หนึ่งจะได้รับ setfacl เพื่อตั้งค่าสิทธิ์ ACL ซ้ำบน Linux?


20

ฉันกำลังตั้งค่าเซิร์ฟเวอร์ใหม่และต้องการให้ ACL ยิงผ่าน chown: chgrp: chmod สไตล์การอนุญาต

man page สำหรับ setfacl บ่งชี้ว่าสามารถใช้ตัวเลือก '-R' เพื่อตั้งค่า ACL ซ้ำบนไฟล์และไดเรกทอรี

-R, - เรียกซ้ำใช้การดำเนินการกับไฟล์และไดเรกทอรีทั้งหมดซ้ำ ตัวเลือกนี้ไม่สามารถผสมกับ '- restore'

หากรูปแบบไดเรกทอรีของฉันมีลักษณะเช่นนี้

test/
   subtest/
   subtest.txt

และฉันรัน

setfacl -Rm d:u:foo:rwX test

ACL จะมีผลกับไดเรกทอรี 'subtest' แต่ไม่ใช่ไฟล์ subtest.txt

ฉันคิดว่าฉันสามารถใช้ find + exec เพื่อแก้ไขปัญหานี้ แต่ฉันวางแผนที่จะใช้เซิร์ฟเวอร์นี้เพื่อฝึกอบรมผู้ดูแลระบบรายอื่น ๆ และฉันต้องการให้มันง่ายที่สุดเท่าที่จะทำได้ การประชุม

ขอบคุณ

คำตอบ:


43

ลอง:

setfacl -Rm u:foo:rwX,d:u:foo:rwX test

เพื่อแก้ไข ACL ปัจจุบันเช่นเดียวกับค่าเริ่มต้น ฉันเชื่อว่า "d:" จะมีผลกับ (d) efault ACL ของไดเรกทอรีและปล่อยให้ไม่มีการแตะต้องไฟล์ จากนั้นหากคุณสร้างไฟล์ใหม่ในไดเรกทอรีมันจะสืบทอด ACL ของไดเรกทอรีหลักผ่านค่าเริ่มต้น


ที่ทำให้รู้สึกถึงแม้ว่ามันจะรู้สึกซ้ำซ้อนบิต
โจ Holloway

1
ทำงานเพื่อลบการควบคุมการเข้าถึงเช่นกัน บางทีสิ่งที่ผลของ: sudo setfacl -Rx g: เส้นทาง gid

เหตุใดการเปลี่ยนตำแหน่งระหว่าง-Rและ-mแฟล็กจึงทำให้คำสั่งแตก
pkaramol

@pkaramol: เนื่องจาก-mตัวเลือกรับอาร์กิวเมนต์ (ข้อมูลจำเพาะ ACL u:foo:rwX,d:u:foo:rwXในกรณีนี้) และสลับลำดับของตัวเลือกเพื่อแยกตัวเลือกออกจากอาร์กิวเมนต์ อาจsetfaclเป็นรหัสที่คาดหวังตัวเลือกหลักก่อน
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.