Mon 13 Aug 2007
สั่งปิดเครื่องคอมพิวเตอร์ผ่านเว็บ
Posted by เอเองครับ under ลีนุกซ์ โอเพนซอร์ส , อินเทอร์เน็ตNo Comments
ในระบบทั่วๆไปไม่ว่าจะเป็น เว็บเซอร์เวอร์ หรือ เซอร์เวอร์ที่ให้บริการในด้านต่างๆ คงไม่ได้จำเป็นนักที่จะต้องดิ้นรนให้มัน ปิด-รีบูท ระบบได้ผ่านหน้าเว็บกลับเป็นการไม่เหมาะสมเอาด้วยซ้ำ
พอดีผมได้ติดตั้ง apache webserver ลงบนคอมพิวเตอร์ขนาดเล็ก ที่มี linux debian เป็นระบบปฎิบัติการ ทุกอย่างก็แน่นอนคอนโทลนผ่านหน้าเว็บอินเทอร์เฟสหมด (เพราะคงไม่ได้ต่อ mouse,keyboard หรือ monitor เมื่อใช้งาน) ก่อนหน้านั้นผมเคยใช้วิธีที่โหดร้ายเอาการอยู่ กล่าวคือ ผมใช้วิธี คอมไพล์ apache ใหม่ โดยเพิ่ม CFLAGS=’-DBIG_SECURITY_HOLE’ เข้าไปตอนคอมไฟล์ (ดูชื่อก็คงรู้ว่าน่ากลัวขนาดไหน) แล้วกำหนดให้ apache ทำงานด้วย user root ไปเลยจากนั้นแล้วจะ execute คำลั่งอะไรก็มิใช่ปัญหา
CFLAGS='-DBIG_SECURITY_HOLE' ./configure --enable-modules=so
make
make install
วิธีแรกข้างบนนั้นนอกจากอันตรายและยังต้องเสียเวลาคอมไฟล์โปรแกรมใหม่อีก ไม่สะดวกสบายเหมือน apt-get install โน่น apt-get install นี่ เอาซะเลย ผมจึงลองหาวิธีใหม่ และนั่นก็คือการใช้คำสั่ง sudo จัดการปัญหานี้
apache ของผมนั้น ทำงานด้วย user www-data ผมเพียงไปเพิ่ม บรรทัดด้านล่างนี้
www-data ALL=(root) NOPASSWD: /sbin/shutdown,/sbin/reboot
ลงในไฟล์ /etc/sudoers โดยการเรียกใช้คำสั่ง sudoedit ความหมายคือ ให้ user www-data สามารถใช้คำสั่ง /sbin/shutdown และ /sbin/reboot ใด้
อ้อผมใช้ php เขียนเว็บครับ ตรงที่จะให้ shutdown หรือ reboot ก็เขียนโค๊ด เช่น
< ?php
exec("/usr/bin/sudo /sbin/shutdown -r now");
?>
อันที่จริงก็ไม่รู้ว่ามีวีธีดีๆอีกหรือเปล่า เอาเป็นว่าบันทึกไว้กันลืมเท่านี้พอ…
กราฟการใช้งานเน็ตของTOT 512/256 kbps สูงๆเขียวๆนั้นเอาไปเกาะproxyข้างนอก






คอมเม้นท์ล่าสุด