ความสัมพันธ์และความแตกต่างระหว่างxattr
และchattr
คืออะไร? ฉันต้องการทราบเมื่อฉันตั้งค่าchattr
คุณลักษณะใน Linux สิ่งที่เกิดขึ้นภายในเคอร์เนล Linux และข้อมูลเมตาของ inode
ความสัมพันธ์และความแตกต่างระหว่างxattr
และchattr
คืออะไร? ฉันต้องการทราบเมื่อฉันตั้งค่าchattr
คุณลักษณะใน Linux สิ่งที่เกิดขึ้นภายในเคอร์เนล Linux และข้อมูลเมตาของ inode
คำตอบ:
แอ็ตทริบิวต์ที่จัดการโดยlsattr
/ chattr
บน Linux และบางส่วนสามารถจัดเก็บได้โดยระบบไฟล์บางส่วน (ext2 / 3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus ... ) และแม้กระทั่งสอบถามผ่าน CIFS / SMB (เมื่อมีส่วนขยาย POSIX) เป็นแฟล็ก เพียงแค่บิตที่สามารถเปิดหรือปิดเพื่อปิดใช้งานหรือเปิดใช้งานแอตทริบิวต์ (เช่นไม่เปลี่ยนรูปหรือเก็บถาวร ... ) วิธีจัดเก็บเป็นระบบไฟล์เฉพาะ แต่โดยทั่วไปเป็นเร็กคอร์ด 16/32/64 บิตใน inode
รายการธงทั้งหมดพบได้ในระบบไฟล์เนทิฟของ Linux (ext2 / 3/4, ... คุณสมบัติในระบบไฟล์ที่สอดคล้องกัน สำหรับกรณีที่simmutableธงเป็นที่จัดเก็บโดย OSX บนระบบไฟล์ HFS + chattr
ถูกจับคู่กับธงเปลี่ยนรูปที่สอดคล้องกันในลินุกซ์ การตั้งค่าสถานะใดที่สนับสนุนโดยระบบไฟล์ใดที่มีการจัดทำเอกสารแทบจะไม่ บ่อยครั้งที่การอ่านซอร์สโค้ดเคอร์เนลเป็นเพียงตัวเลือกเท่านั้น
คุณลักษณะเพิ่มเติมในทางกลับกันตามที่กำหนดด้วยsetfattr
หรือattr
บน Linux เก็บมากกว่าธง พวกเขาจะแนบไปกับไฟล์เช่นกันและเป็นคู่ของคีย์ / ค่าที่สามารถ (ทั้งที่สำคัญและค่า) อาร์เรย์โดยพลการของไบต์ (แม้ว่าจะมีข้อ จำกัด ของขนาดในบางระบบไฟล์)
ที่สำคัญสามารถเช่น: หรือsystem.posix_acl_access
namespace ถูกสงวนไว้สำหรับระบบ (คุณจะไม่เปลี่ยน POSIX ACLs มีแต่มากขึ้นด้วย, POSIX ACLs เพิ่งเกิดขึ้นจะถูกเก็บไว้เป็นคุณสมบัติการขยายอย่างน้อยในระบบไฟล์บางส่วน) ในขณะที่namespace สามารถนำมาใช้โดยการใช้งาน (ที่นี่ใช้สำหรับตัวเลือกเพื่อเก็บข้อมูลเกี่ยวกับความเป็นเจ้าของหรือการอนุญาตเมื่อคุณไม่ได้เป็น superuser)user.rsync.%stat
system
setfattr
setfacl
user
rsync
--fake-super
อีกครั้งวิธีที่พวกเขาเก็บไว้เป็นระบบแฟ้มที่เฉพาะเจาะจง ดูวิกิพีเดียสำหรับข้อมูลเพิ่มเติม
lsattr
/ chattr
การทำงานสำหรับผู้ที่ไม่ใช่ext
ระบบไฟล์? ถ้าไม่ใช่คุณจะเปลี่ยนสถานะบนext
ระบบที่ไม่ใช่บน Linux ได้อย่างไร? นอกจากนี้ยังมีattr
หน้าคนบอกว่ามันถูกเขียนขึ้นสำหรับ XFS (แม้ว่ามันจะทำงานสำหรับฉันในext4
) จริง ๆ แล้วฉันใช้เวลานานในการดูเมื่อวานนี้ข้อมูลที่ดีมายาก โปรดดู - unix.stackexchange.com/questions/118840/…
lsattr/chattr
ใช้สำหรับแฟล็กไฟล์ ระบบไฟล์ทั้งหมดอาจไม่สนับสนุนการตั้งค่าสถานะทั้งหมดบางอย่างเช่นการบีบอัดจะไม่ทำงานบน ext4 แต่จะทำงานบน btrfs
reiserfs
ของพวกเขาใน
ทุกอย่างเข้ามาinode
เมื่อคุณเปลี่ยนไฟล์แน่นอนคุณเปลี่ยนinode
. สำหรับการเขียนสคริปต์คุณมีคำสั่งที่ดี:
stat --format=%a yourfile
คุณสามารถใช้%variable
และคืนประโยชน์จากinode
แต่คำตอบของคุณ:
xattr
อยู่ใน MacOS และchattr
ในกล่อง linux
attr
คำสั่งมีไว้สำหรับระบบไฟล์ XFS คำสั่งอิสระของระบบไฟล์เทียบเท่าคือsetfattr