เรียนรู้คำสั่ง Linux commandfacl

ยูทิลิตี 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),