ฉันตั้งค่าสภาพแวดล้อมของฉันเพื่อสร้างแกนการถ่ายโอนข้อมูลของทุกสิ่งที่เกิดปัญหา แต่เมื่อฉันเรียกใช้โปรแกรมด้วย SUID ที่ตั้งค่าไว้ในผู้ใช้คนอื่นนอกเหนือจากผู้ใช้ที่กำลังเรียกใช้งานมันไม่ได้สร้างแกนการถ่ายโอนข้อมูล ความคิดใดเป็นสาเหตุที่อาจเป็นเช่นนี้ ฉันไม่พบที่ใดก็ได้บนเว็บฉันคิดว่ามันเป็นคุณสมบัติความปลอดภัยบางอย่าง แต่ฉันต้องการปิดการใช้งาน ...
ปัญหา:
$ cd /tmp
$ cat /etc/security/limits.conf | grep core
* - core unlimited
root - core unlimited
$ ls -l ohai
-rwsr-sr-x 1 root root 578988 2011-06-23 23:29 ohai
$ ./ohai
...
Floating point exception
$ sudo -i
# ./ohai
...
Floating point exception (core dumped)
# chmod -s ohai
# exit
$ ./ohai
...
Floating point exception (core dumped)
แก้ไข: เพื่อให้ทำงานอย่างปลอดภัยที่สุดเท่าที่จะเป็นไปได้ตอนนี้ฉันมีสคริปต์ต่อไปนี้เพื่อตั้งค่าสภาพแวดล้อม:
mkdir -p /var/coredumps/
chown root:adm /var/coredumps/
chmod 772 /var/coredumps/
echo "kernel.core_pattern = /var/coredumps/core.%u.%e.%p" >> /etc/sysctrl.conf
echo "fs.suid_dumpable = 2" >> /etc/sysctl.conf
echo -e "*\t-\tcore\tunlimited" >> /etc/security/limits.conf
echo -e "root\t-\tcore\tunlimited" >> /etc/security/limits.conf
ตอนนี้สิ่งที่ต้องทำคือเพิ่ม ACL ไปยัง / var / coredumps เพื่อให้ผู้ใช้สามารถเพิ่มไฟล์ได้เท่านั้นและไม่ต้องแก้ไขหรืออ่านไฟล์เหล่านั้นอีกเลย ข้อด้อยเพียงอย่างเดียวคือฉันยังคงมีปัญหากับแอปพลิเคชัน chroot'ed ซึ่งจะต้องมีbind mount
หรืออะไรทำนองนั้น