setcap- เปลี่ยนแปลงอย่างถาวร


11

เมื่อใช้ setcap สำหรับไฟล์การเปลี่ยนแปลงนี้จะถาวรหรือฉันต้องเรียกใช้ setcap ที่อื่นตอนบูทหรือไม่

setcap cap_sys_nice fooexecutable

คำตอบ:


15

setcapที่ไฟล์เก็บความสามารถในการขยายแอตทริบิวต์ที่มีการเรียกไปยังsetxattr แอ็ตทริบิวต์ส่วนขยายนี้ถูกเก็บไว้เช่นเดียวกับคุณสมบัติอื่น ๆ (ความเป็นเจ้าของสิทธิ์ ... ) ในระบบไฟล์

ตั้งแต่เคอร์เนล 2.6.24 เคอร์เนลสนับสนุนการเชื่อมโยงชุดความสามารถกับไฟล์ที่ปฏิบัติการได้โดยใช้ setcap (8) ชุดความสามารถของไฟล์จะถูกเก็บไว้ในแอ็ตทริบิวต์ส่วนขยาย (ดูที่ setxattr (2)) ชื่อ security.capability

ดังนั้นคุณไม่ต้องรีเซ็ตหมวกในการรีบูตแต่ละครั้ง


แล้วถ้าไฟล์นั้นถูกแทนที่?
ryanwinchester

1
@ryanwinchester หากมีการเปลี่ยนแปลงเฉพาะเนื้อหาของไฟล์ไม่มีปัญหา แต่หากไฟล์ถูกลบ / สร้างใหม่ความจุ setcap จะถูกลบเช่นกัน
Cédric Julien

:( อ่านั่นคือปัญหาของฉันฉันมีสคริปต์ที่สร้างไดเรกทอรีใหม่แล้วเริ่มเซิร์ฟเวอร์ฟังพอร์ต 80 ฉันต้องคิดหาวิธีที่จะไม่ต้องทำงานsetcapทุกครั้ง
ryanwinchester

"ถ้ามีการเปลี่ยนแปลงเฉพาะเนื้อหาของไฟล์ไม่มีปัญหา" ไม่เป็นความจริง การเปลี่ยนเนื้อหาของไฟล์จะทำให้ความสามารถนั้นถูกลบออกไป ดูunix.stackexchange.com/a/283408/2526
Richard Fearn

0

การเปลี่ยนแปลงเป็นสิ่งที่ถาวร nodejsแต่ผมมีปัญหาที่มีประสบการณ์เมื่อใช้กับ

คุณสามารถใช้authbindเพื่อให้สิทธิ์โดยผู้ใช้

sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.