Ho una domanda "semplice": come posso modificare in modo sicuro la password di un utente da uno script PHP, senza concedere privilegi di root Apache o introdurre altri buchi di sicurezza pazzi?Modifica password utente Linux da script PHP
Background: CentOS 6, Apache 2.2.13, PHP 5.3.3
Sono consapevole del comando pam_chpasswd(), che è parte della libreria PECL PAM. Tuttavia, questa funzione ha esito negativo a meno che il processo host (httpd) abbia accesso in lettura al file/etc/shadow. (BAD IDEA! Non sono sicuro di come questa libreria sia d'aiuto se richiede privilegi così elevati ...)
La situazione ideale, per quanto posso vedere, è che PHP chiama uno script di shell con 'sudo -u [username di utente che modifica la sua password] ' Questo eseguirà lo script "AS" come utente, quindi dovrebbe avere il permesso di cambiare la propria password. E sudo richiederebbe che l'utente invii la sua password esistente per essere autenticato, impedendo così a un utente di modificare la password di un altro utente.
Ma questo non funziona per qualche motivo ... quando si apre il processo con popen, il processo non viene mai eseguito. Ho impostato lo script della shell per scaricare del testo in un file scrivibile pubblicamente in/tmp. Ma non arriva mai a quel 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);
Se accedo questo script php (http: //server/script.php), la funzione fallisce immediatamente, e $ risultato = 1
Se modifico il file sudoers (visudo) e aggiungere una linea:
$
Defaults: apache requiretty
Lo script si blocca per circa 10 secondi, poi fallisce ($ risultato = 1)
Eventuali suggerimenti per fare questo sono molto apprezzate!
Qualsiasi di questi lavori? http://stackoverflow.com/questions/127459/using-shell-execpasswd-to-change-a-users-password?rq=1 – Aknosis