เพิ่ม Linux User ผ่าน shell_exec
เรื่อง ssh authentication กับ php เพื่อใช้ useradd ในสิทธิ์ของ root
:: linux ที่ผมใช้ connect ssh ไม่ผ่าน จึงเปลี่ยนไปใช้ shell_exec กับการจัดการ sudoers แทน
<?php
$host = "127.0.0.1" ;
$output = shell_exec("ping -c1 $host");
echo "<pre>$output</pre>";
echo shell_exec('id'
$user = "hello";
$pass = "wow";
echo shell_exec("sudo -u root -S /usr/sbin/useradd $user");
echo shell_exec("echo $pass |sudo -u root -S /usr/bin/passwd $user --stdin");
echo shell_exec("id $user");
?>
วิธีการจัดการแฟ้ม /etc/sudoers
- เปลี่ยนสิทธิ์จาก 440 เป็น 777
- เปิดแฟ้ม แล้วแก้ให้เลิกถามรหัสผ่านเมื่อใช้ sudo
- เพิ่ม apache ALL= NOPASSWD: /usr/sbin/useradd, /usr/bin/passwd
- ต้องเปลี่ยนกลับเป็น 0440 จึงจะสั่ง script ให้ทำงานได้
- http://fr2.php.net/manual/en/function.shell-exec.php
- http://www.gratisoft.us/sudo/man/sudoers.html