วิธีทำให้ PHP สั่ง Kill Process ใครก็ได้ในระบบ
การตั้ง Title อันนี้ยากมากเพราะจริงๆคือการทำให้ Apache นั้นมีสิทธิเหมือน Root แล้วไม่ต้องใส่ Password ดังนั้นผมจะมาบอกวิธีกันครับเอาไปลองใช้กันได้โดยผมใช้ Centos เช่นเดิมครับส่วนใครใช้ distro อื่นต้องปรับกันเอานะครับ
- เข้า Shell เป็น root
- ใช้คำสั่ง visudo
- ค้นหาบรรทัดนี้ root ALL=(ALL) ALL
- พิมพ์บรรทัดถัดไปว่า apache ALL=(ALL) NOPASSWD: ALL
หมายเหตุ all ด้านหลังสุดคือหมายถึงยอมให้ใช้ทุกคำสั่ง ถ้าอยากให้ใช้บางคำสั่งได้ก็เขียนแบบนี้ครับ /bin/kill *,/usr/bin/php * แบบนี้นะครับโดยเน้นว่าต้องมี * ครับ - เสร็จแล้วก็ save ไฟล์ถ้าไม่มีอะไรผิดพลาดจะไม่ฟ้อง error แต่ถ้ามีผิดแล้วมันถามว่าจะทำไงต่อพิมพ์ตัวอักษร e แล้วก็ไปแก้ไขให้ถูกต้อง
- ไปปิด safe mode ใน php.ini และเอาพวกปิด disable function ออก
- เสร็จแล้ว restart apache สัก 1 ครั้งในกรณีผมใช้ service httpd restart
- code ใน php ให้ใช้ shell_exec ได้เลยครับ โดยผมเจอปัญหาว่าใช้ xargs ไม่ติดก็เลยใช้วิธีเอา output จาก exec ก่อนแล้วค่อยไปใช้ shell_exec ครับโดย ถ้าใช้คำสั่ง kill process ผมใช้แบบนี้ครับ “sudo kill -9 $pid” เน้นเลยว่าต้องมี sudo ครับไม่งั้นจะ kill process คนอื่นไม่ได้ครับ
เป็นอันเสร็จครับ โดมผมก็มั่วๆจนได้ลำดับการทำได้ประมาณนี้ครับ โดยสำคัญสุดคือการทำ apache เป็น sudoer ครับ
| Tweet |
เนื้อหาคล้ายกันที่น่าสนใจ

ระวังโดนแฮกนะ ปิด security ขนาดนี้ น่ากลัวไปมั้ย
มันต้อง trade-off อะเรื่องเนี้ย โดมลด security เพื่อเพิ่มความสบายในการจัดการ
ผมทำตามแล้วไม่ได้ ผมใช้ centos 5.6 ไม่ทราบว่าต้องแก้ไงครับ
safe_mode = Off
disable_functions =
root ALL=(ALL) ALL
apache ALL=(ALL) NOPASSWD: ALL