ในเวอร์ชั่น Jessie สำหรับ Raspberry Pi ping
ต้องมีการsetuid
ตั้งค่าบิต เหตุผลนี้คืออะไร
ในเวอร์ชั่น Jessie สำหรับ Raspberry Pi ping
ต้องมีการsetuid
ตั้งค่าบิต เหตุผลนี้คืออะไร
คำตอบ:
ping ต้องการสร้างและรับแพ็คเก็ต ICMP และโดยปกติแล้วจะทำโดยใช้ "raw sockets" ซึ่งเป็นคุณสมบัติที่ จำกัด เฉพาะ root (cap_net_raw) เพราะมันอาจถูกใช้ในทางที่ผิดเพื่อดมกลิ่นและขัดขวางการรับส่งข้อมูลอื่น ๆ ในระบบ
การกระจายจำนวนมากในขณะนี้เพียงให้ ping สิทธิ์cap_net_raw (ดูcapabilities(7)
และgetcap(8)
หน้าคู่มือ) แทนที่จะเต็ม setuid รูต อย่างไรก็ตามสิ่งนี้ต้องการทั้งเคอร์เนลและระบบไฟล์เพื่อสนับสนุนแอ็ตทริบิวต์ส่วนขยาย (xattrs) และบางระบบ "ขั้นต่ำ" ปิดใช้งานสิ่งเหล่านี้
นอกจากนี้เมื่อเร็ว ๆ นี้ได้เพิ่มประเภทซ็อกเก็ต "ICMP"พิเศษที่อนุญาตให้ส่งข้อความ ICMP Echo เท่านั้นโดยไม่มีสิทธิ์เพิ่มเติมใด ๆ คำสั่ง ping ยังไม่ได้รับการอัพเดต
getfattr --dump --match=.* /sbin/ping
ดู