ยูทิลิตี Setfacl ตั้งค่า Access Control Lists (ACLs) ของไฟล์ และไดเร็กทอรี ใน บรรทัดคำสั่ง ลำดับของ คำสั่ง จะตามด้วยลำดับของไฟล์ (ซึ่งจะสามารถตามด้วยลำดับคำสั่งอื่นได้ ... )
ตัวเลือก -m และ -x คาดว่า ACL ในบรรทัดคำสั่ง รายการ ACL หลายรายการจะคั่นด้วยเครื่องหมายจุลภาค (",") ตัวเลือก -M และ -X อ่าน ACL จากไฟล์หรือจากอินพุตมาตรฐาน รูปแบบรายการ ACL ได้อธิบายไว้ในส่วน ACL ENTRIES
ตัวเลือก --set และ --set-file กำหนด ACL ของไฟล์หรือไดเร็กทอรี เปลี่ยน ACL ก่อนหน้านี้ รายการ ACL สำหรับการดำเนินการนี้ต้องมีสิทธิ์
ตัวเลือก -m (--modify) และ -M (--modify-file) จะ ปรับเปลี่ยน ACL ของไฟล์หรือไดเร็กทอรี รายการ ACL สำหรับการดำเนินการนี้ต้องมีสิทธิ์
ตัวเลือก -x (--remove) และ -X (- ลบ ไฟล์) จะ เอา enle ของ ACL ออก เฉพาะรายการ ACL ที่ไม่มีฟิลด์ perms เท่านั้นที่ยอมรับว่าเป็นพารามิเตอร์ยกเว้น POSIXLY_CORRECT
เมื่ออ่านจากไฟล์โดยใช้ตัวเลือก -M และ -X setfacl จะรับเอาต์พุต getfacl ที่สร้างขึ้น มีรายการ ACL ไม่เกินหนึ่งรายการต่อบรรทัด หลังจากเครื่องหมายปอนด์ (`# ') ทุกอย่างจนจบบรรทัดจะถือว่าเป็นความคิดเห็น
ถ้า setfacl ใช้ในระบบไฟล์ที่ไม่สนับสนุน ACLs setfacl จะทำงานในบิตอนุญาตโหมดไฟล์ ถ้า ACL ไม่พอดีกับบิตการอนุญาต setfacl จะปรับเปลี่ยนบิตการอนุญาตโหมดไฟล์เพื่อสะท้อน ACL ให้ใกล้เคียงที่สุดเขียนข้อผิดพลาดเป็นข้อผิดพลาดมาตรฐานและส่งกลับด้วยสถานะทางออกมากกว่า 0
สรุป
setfacl [-bkndRLPvh] [{-m | -x} acl_spec] [{-M | -X} acl_file] ไฟล์ ...
setfacl --restore = ไฟล์
สิทธิ์
เจ้าของไฟล์และกระบวนการที่สามารถ CAP_FOWNER ได้รับสิทธิ์ในการแก้ไข ACL ของไฟล์ นี่คล้ายกับสิทธิ์ที่จำเป็นสำหรับการเข้าถึงโหมดไฟล์ (ในระบบลีนุกซ์ปัจจุบัน root เป็นเพียงผู้ใช้ที่มีความสามารถ CAP_FOWNER เท่านั้น)
ตัวเลือก
-b, - ลบทั้งหมด
ลบรายการ ACL ที่ขยายทั้งหมด รายการฐาน ACL ของเจ้าของกลุ่มและคนอื่น ๆ จะยังคงอยู่
-k, --remove-default
ลบ ACL เริ่มต้น ถ้าไม่มี ACL เริ่มต้นจะไม่มีคำเตือนใด ๆ ออกมา
-n, --no-mask
อย่าคำนวณมาส์กใหม่ที่มีประสิทธิภาพ ลักษณะการทำงานเริ่มต้นของ setfacl คือการคำนวณรายการมาสก์ ACL ใหม่เว้นแต่ว่าได้กำหนดรายการมาสก์ไว้อย่างชัดแจ้ง รายการมาสก์ถูกตั้งค่าเป็นสหภาพของสิทธิ์ทั้งหมดของกลุ่มที่เป็นเจ้าของและรายการผู้ใช้และกลุ่มที่มีชื่อทั้งหมด (นี่คือรายการที่ได้รับผลกระทบจากรายการมาสก์)
--mask
อย่าคำนวณหน้ากากสิทธิ์ที่มีประสิทธิภาพแม้ว่าจะมีการกำหนดรายการของ ACL mask ไว้อย่างชัดเจน (ดูตัวเลือก -n )
-d, --default
การดำเนินงานทั้งหมดใช้กับ ACL เริ่มต้น รายการ ACL ปกติในชุดข้อมูลอินพุตจะเลื่อนไปเป็นรายการ ACL เริ่มต้น รายการ ACL เริ่มต้นในชุดข้อมูลอินพุตจะถูกยกเลิก (คำเตือนจะออกถ้าเกิดขึ้น)
เรียกคืนไฟล์ =
คืนค่าการสำรองข้อมูลสิทธิ์ที่สร้างโดย `getfacl-R 'หรือที่คล้ายกัน สิทธิ์ทั้งหมดของทรีย่อยไดเรกทอรีที่สมบูรณ์จะถูกเรียกคืนโดยใช้กลไกนี้ ถ้าอินพุตมีข้อคิดเห็นหรือความคิดเห็นของกลุ่มและ setfacl ถูกเรียกใช้โดย root เจ้าของและกลุ่มที่เป็นเจ้าของไฟล์ทั้งหมดจะได้รับการคืนค่าด้วย ตัวเลือกนี้ไม่สามารถใช้ร่วมกับตัวเลือกอื่นยกเว้น `- test '
--ทดสอบ
โหมดการทดสอบ แทนการเปลี่ยน ACL ของไฟล์ใด ๆ ACL ที่ได้รับจะปรากฏในรายการ
-R, --recursive
ใช้การดำเนินการกับไฟล์และไดเรกทอรีทั้งหมดในแบบวนซ้ำ ตัวเลือกนี้ไม่สามารถใช้ร่วมกับ `--restore 'ได้
-L, --logical
ตรรกะเดินตามลิงค์สัญลักษณ์ พฤติกรรมเริ่มต้นคือการปฏิบัติตามอาร์กิวเมนต์การเชื่อมโยงสัญลักษณ์และข้ามการเชื่อมโยงสัญลักษณ์ที่พบในไดเร็กทอรีย่อย ตัวเลือกนี้ไม่สามารถใช้ร่วมกับ `--restore 'ได้
-P, - กายภาพ
เดินกายภาพข้ามลิงก์สัญลักษณ์ทั้งหมด นอกจากนี้ยังข้ามอาร์กิวเมนต์การเชื่อมโยงสัญลักษณ์ ตัวเลือกนี้ไม่สามารถใช้ร่วมกับ `--restore 'ได้
--version
พิมพ์เวอร์ชันของ setfacl และออก
--ช่วยด้วย
พิมพ์ช่วยอธิบายตัวเลือกบรรทัดคำสั่ง
สิ้นสุดของตัวเลือกบรรทัดคำสั่ง พารามิเตอร์ที่เหลือทั้งหมดจะถูกตีความว่าเป็นชื่อไฟล์แม้ว่าจะเริ่มต้นด้วยเครื่องหมายขีดคั่น
ถ้าพารามิเตอร์ชื่อไฟล์เป็นเส้นประเดี่ยว setfacl จะอ่านรายการไฟล์จากอินพุตมาตรฐาน
รายการ ACL
ยูทิลิตี setfacl รู้จักรูปแบบรายการ ACL ต่อไปนี้ (ช่องว่างแทรกเพื่อความชัดเจน):
[d]:] [u [ser]:] uid [: perms ]
สิทธิ์ของผู้ใช้ที่มีชื่อ สิทธิ์ของเจ้าของไฟล์ถ้า uid ว่างเปล่า
[d] [effault]:] g [roup]: gid [: perms ]
สิทธิ์ของกลุ่มที่มีชื่อ สิทธิ์ของกลุ่มที่เป็นเจ้าของหาก gid ว่างเปล่า
[d] ef]:] m [ถาม] [:] [: perms ]
หน้ากากสิทธิ์ที่มีประสิทธิภาพ
[d] ef []:] o [มี] [:] [: perms ]
สิทธิ์ของผู้อื่น
ช่องว่างระหว่างตัวคั่นและตัวคั่นที่ไม่ใช่ตัวคั่นจะถูกละเลย
รายการ ACL ที่ถูกต้องรวมทั้งสิทธิ์ใช้ในการแก้ไขและตั้งค่าการดำเนินการ (ตัวเลือก -m , -M , --set และ --set-file ) รายการที่ไม่มีฟิลด์ perms จะใช้สำหรับ การลบ รายการ (ตัวเลือก -X และ -X )
สำหรับ uid และ gid คุณสามารถระบุชื่อหรือหมายเลขได้
ฟิลด์ perms คือการรวมกันของอักขระที่ระบุสิทธิ์: อ่าน (r) , เขียน (w) , execute (x) , รันเฉพาะเมื่อไฟล์เป็นไดเรกทอรีหรือมีสิทธิ์ดำเนินการสำหรับผู้ใช้บางคน (X) แล้ว หรือฟิลด์ perms อาจเป็นตัวเลขฐานแปด (0-7)
รายการที่สร้างโดยอัตโนมัติ
ตอนแรกไฟล์และไดเร็กทอรีมีเพียงรายการฐาน ACL สามรายการสำหรับเจ้าของกลุ่มและคนอื่น ๆ เท่านั้น มีกฎบางอย่างที่ต้องพอใจเพื่อให้ ACL มีผลใช้งาน:
* * * *
ไม่สามารถลบรายการฐานสามรายการได้ ต้องมีรายการหนึ่งของแต่ละประเภทรายการหลักเหล่านี้อย่างน้อยหนึ่งรายการ
* * * *
เมื่อใดก็ตามที่ ACL มีรายการผู้ใช้ชื่อหรือวัตถุกลุ่มที่มีชื่อจะต้องมีหน้ากากสิทธิที่มีประสิทธิภาพด้วย
* * * *
เมื่อใดก็ตามที่ ACL มีรายการ ACL เริ่มต้นระบบจะต้องมีรายการฐาน ACL เริ่มต้นสามรายการ (เจ้าของดีฟอลต์กลุ่มดีฟอลต์และอื่น ๆ ที่เป็นค่าเริ่มต้น) ด้วย
* * * *
เมื่อใดก็ตามที่ ACL เริ่มต้นมีรายการผู้ใช้ที่ตั้งชื่อหรือวัตถุกลุ่มที่มีชื่อจะต้องมีหน้ากากสิทธิพิเศษที่เป็นค่าเริ่มต้น
เพื่อช่วยให้ผู้ใช้มั่นใจได้ว่ากฎเหล่านี้ setfacl สร้างรายการจากรายการที่มีอยู่ภายใต้เงื่อนไขต่อไปนี้:
* * * *
ถ้า ACL มีชื่อผู้ใช้หรือกลุ่มที่มีชื่อและไม่มีรายการมาสก์อยู่รายการมาสก์ที่มีสิทธิ์เหมือนกับรายการกลุ่มจะถูกสร้างขึ้น ถ้าไม่มีตัวเลือก n ให้สิทธิ์ของรายการมาสก์จะได้รับการปรับเปลี่ยนเพิ่มเติมเพื่อรวมสหภาพของสิทธิ์ทั้งหมดที่ได้รับผลกระทบจากรายการมาสก์ (ดูรายละเอียดตัวเลือก -n )
* * * *
หากรายการ ACL เริ่มต้นถูกสร้างขึ้นและ ACL เริ่มต้นไม่มีเจ้าของผู้เป็นเจ้าของกลุ่มหรือรายการอื่น ๆ สำเนาของเจ้าของ ACL การเป็นเจ้าของกลุ่มหรือรายการอื่นจะถูกเพิ่มลงใน ACL เริ่มต้น
* * * *
ถ้า ACL เริ่มต้นมีรายการชื่อผู้ใช้หรือรายการกลุ่มที่มีชื่อและไม่มีรายการมาสก์อยู่รายการมาสก์ที่มีสิทธิ์เหมือนกันกับรายการกลุ่มเริ่มต้นของ ACL เริ่มต้นจะถูกเพิ่ม ถ้าไม่มีตัวเลือก n ระบุสิทธิ์ของรายการมาสก์จะได้รับการปรับเปลี่ยนเพิ่มเติมเพื่อรวมกลุ่มสิทธิ์ทั้งหมดที่ได้รับผลกระทบจากรายการมาสก์ (ดูรายละเอียดตัวเลือก -n )
ตัวอย่าง
ให้สิทธิ์การอ่านสำหรับผู้ใช้เพิ่มเติม
setfacl -mu: lisa: r file
ยกเลิกการเข้าถึงการเขียนจากทุกกลุ่มและผู้ใช้ที่ตั้งชื่อทั้งหมด (ใช้หน้ากากสิทธิ์ที่มีประสิทธิภาพ)
ไฟล์ setfacl-mm :: rx
การนำรายการกลุ่มที่มีชื่อออกจาก ACL ของไฟล์
setfacl -xg: ไฟล์พนักงาน
การคัดลอก ACL ของไฟล์หนึ่งไปยังอีกไฟล์หนึ่ง
getfacl file1 | setfacl --set-file = - file2
การคัดลอก ACL การเข้าถึง ACL เริ่มต้น
getfacl -a dir | setfacl -d -M- dir
ความสอดคล้องกับ POSIX 1003.1e ร่างมาตรฐาน 17
ถ้าตัวแปรสภาพแวดล้อม POSIXLY_CORRECT ถูกกำหนดพฤติกรรมเริ่มต้นของ setfacl จะเปลี่ยนแปลงดังนี้: ตัวเลือกที่ไม่ได้มาตรฐานทั้งหมดถูกปิดใช้งาน คำนำหน้า `` เริ่มต้น: '' ถูกปิดใช้งาน ตัวเลือก -X และ -X ยังยอมรับเขตข้อมูลสิทธิ์ (และละเว้น)
ดูสิ่งนี้ด้วย
umask (1),