Tengo una pregunta "simple": ¿cómo puedo cambiar de forma segura la contraseña de un script PHP, sin otorgar privilegios de root a Apache ni introducir otros locos agujeros de seguridad?Cambiar la contraseña de usuario de Linux del script PHP
Antecedentes: CentOS 6, Apache 2.2.13, PHP 5.3.3
Soy consciente del comando pam_chpasswd(), que es parte de la biblioteca PECL PAM. Sin embargo, esta función falla a menos que el proceso de host (httpd) tenga acceso de lectura al archivo/etc/shadow. (¡MALA IDEA! No estoy seguro de cómo esta biblioteca ayuda si requiere tantos privilegios ...)
La situación ideal, hasta donde puedo ver, es hacer que PHP invoque un script de shell con 'sudo -u [nombre de usuario de usuario cambiando su contraseña] ' Esto ejecutaría el script "AS" del usuario, por lo que debería tener permiso para cambiar su propia contraseña. Y sudo requeriría que el usuario envíe su contraseña existente para poder ser autenticado, evitando así que un usuario cambie la contraseña de otro usuario.
Pero esto no funciona por alguna razón ... al abrir el proceso con popen, el proceso nunca se ejecuta. Tengo el script de shell configurado para volcar algún texto en un archivo de escritura pública en/tmp. Pero nunca llega a ese punto.
$cmd = "/usr/bin/sudo -S -u$username /file_to_execute.sh";
$handle = popen ($cmd, "w"); // Open the process for writing
fwrite ($handle, "$current_password\n"); // Send the user's current password to sudo (-S option)
fwrite .... (write the username, current password, and new password, so the script can change it)
$result = pclose($handle);
Si accedo a este script php (http: //server/script.php), la función falla inmediatamente, y $ resultado = 1
Si modifico el archivo sudoers (visudo) y añadir una línea:
$
predeterminados: Apache requiretty
El guión se congela durante unos 10 segundos, y luego falla ($ resultado = 1)
¿Alguna sugerencia para hacer esto son muy apreciadas!
Cualquiera de estos trabajos? http://stackoverflow.com/questions/127459/using-shell-execpasswd-to-change-a-users-password?rq=1 – Aknosis