php - proc_open (или другая функция, которая работает) - PullRequest
0 голосов
/ 25 сентября 2008

Мне нужно сделать несколько командных строк через браузер. Что мне нужно сделать в командной строке:

$login
<login name>
<password>
$passwd
<old password>
<new password>
<retype new password>

Итак, как я могу сделать это, используя функцию proc_open? Или я должен использовать другую функцию для этого?


Адам Райт, я попробовал ваш пример, но я просто не могу изменить пароль пользователя. мне нужно делать какие-либо другие вещи в сценарии (кроме определения $ user, $ userPassword и $ newPassword)?

Спасибо

Ответы [ 3 ]

1 голос
/ 25 сентября 2008

http://pecl.php.net/package/PAM может быть чем-то, что вы можете использовать.
Имеет функцию bool pam_chpass(string $username, string $oldpassword, string $newpassword [, string &$error ]).
Но я никогда этим не пользовался.

1 голос
/ 25 сентября 2008

Нашел Измените системный пароль Linux или UNIX, используя скрипт PHP в Интернете.

Очень подробное описание того, как создать веб-сайт, где пользователь может изменить свой системный пароль.

1 голос
/ 25 сентября 2008

Вам не нужно вводить логин, чтобы сменить пароль пользователя, просто укажите его имя для passwd. Используя popen (поскольку нам не нужно читать в этом крошечном примере), что-то вроде

$pp = popen("passwd ${user}", "w");
fwrite($pp, $oldPassword . '\n');
fwrite($pp, $newPassword . '\n');
fwrite($pp, $newPassword . '\n');
pclose($pp);

Если вы хотите прочитать ответы, используйте proc_open и просто прочитайте из заданного вами дескриптора stdout.

Я надеюсь, что все это хорошо защищено, и у вас есть лот санации на имя пользователя.

...