เหตุใด getfattr จึงไม่แสดงข้อมูลใด ๆ สำหรับไฟล์ที่มีการตั้งค่าบิตคุณสมบัติเพิ่มเติม?


10

ฉันได้ติดตั้ง Nagios XI บน CentOS 6.2 แล้วและต้องการแก้ไขสคริปต์สำรอง ฉันสังเกตเห็นว่าบิตคุณสมบัติเพิ่มเติมนั้นถูกตั้งค่าไว้สำหรับเชลล์สคริปต์นี้ดังนั้นฉันต้องการแน่ใจว่าจะไม่ทำอะไรผิดพลาดเมื่อฉันทำการเปลี่ยนแปลง ฉันทดลองและพบว่า "cp -p" ไม่รักษาการตั้งค่านี้ไว้ (ดูความคิดเห็นสำหรับการอัปเดตเกี่ยวกับเรื่องนี้) ฉันใหม่กับคุณลักษณะเพิ่มเติมบน Linux และพบว่ามีคำสั่ง 'getfattr' ที่ควรแสดงแอตทริบิวต์เพิ่มเติม แต่ไม่แสดงอะไรสำหรับไฟล์นี้

cd /usr/local/nagiosxi/scripts
ll backup_xi.sh
-rwxr-x---.  1 nagios nagios   2757 Jul  3 10:03 backup_xi.sh*

# nothing is displayed by 'getfattr':
getfattr -d backup_xi.sh

# and nothing special seems to be present according to 'getfacl':
getfacl backup_xi.sh
# file: backup_xi.sh
# owner: nagios
# group: nagios
user::rwx
group::r-x
other::---

ท้ายที่สุดวัตถุประสงค์ของฉันคือการแก้ไขไฟล์ในขณะที่รักษาคุณลักษณะใด ๆ ที่ตั้งค่าไว้ระหว่างการติดตั้งผลิตภัณฑ์ดั้งเดิม มีเหตุผลว่าทำไมบิตของ Extended attribute ถูกตั้งค่าแม้ว่าจะไม่มีคุณสมบัติใด ๆ ปรากฏอยู่ตาม getfattr?


1
ฉันแก้ไขปริศนาหนึ่ง: "cp -p" ค่าเริ่มต้นเป็น "cp --preserve = mode, กรรมสิทธิ์, เวลาประทับ" การใช้ "cp --preserve = backup_xi.sh backup_xi.sh.ORIG" จะทำงานและคงไว้ซึ่งบิตของแอ็ตทริบิวต์ส่วนขยาย
อลัน

คำตอบ:


10

security.selinuxแอตทริบิวต์ขยายจะไม่แสดงโดยค่าเริ่มต้นโดยgetfattr; คุณต้องขออย่างชัดเจน

$ getfattr -d Work
$ getfattr -n security.selinux Work
# file: Work
security.selinux="unconfined_u:object_r:user_home_t:s0"

5
ขอบคุณ. หน้าคน getfattr เข้าใจผิดมาก: "-d: การถ่ายโอนข้อมูลค่าของคุณลักษณะเพิ่มเติมทั้งหมดที่เกี่ยวข้องกับชื่อพา ธ " เห็นได้ชัดว่า "ทั้งหมด" ไม่ได้หมายถึง "ทั้งหมด" ว้าว. ฉันพบว่าตัวเลือก "-m" ที่มีรูปแบบ "-" แสดงรายการ "all" คุณสมบัติ ใช้คำสั่ง "getfattr -m - backup_xi.sh" ฉันเห็น "security.selinux" เป็นคุณลักษณะเท่านั้น
อลัน

แท้จริงแล้ว man page hides: "ค่าเริ่มต้นสำหรับรูปแบบคือ" ^ user \\. "ซึ่งรวมถึงแอตทริบิวต์ทั้งหมดในเนมสเปซของผู้ใช้ระบุ" - "เพื่อรวมแอตทริบิวต์ทั้งหมด" ดีแล้วที่รู้.
Ashe

1
ในการแสดงรายการคุณสมบัติเพิ่มเติมทั้งหมด:getfattr -d -m ".*" <filename>
elig
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.