トップページ > プログラム > 2015年08月05日 > 2Cq1bTVi

書き込み順位&時間帯一覧

22 位/166 ID中時間01234567891011121314151617181920212223Total
書き込み数0020000000000000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
78
【PHP】下らねぇ質問はここに書き込みやがれ 2©2ch.net

書き込みレス一覧

【PHP】下らねぇ質問はここに書き込みやがれ 2©2ch.net
78 :デフォルトの名無しさん[]:2015/08/05(水) 02:41:24.63 ID:2Cq1bTVi
Web上でパスワード変更するためのフォームを作成中です。
環境は、OS: Ubuntu 14.04.2 LTS カーネル: Linux 2.6.32 PHPバージョン: 5.5.9です。
以下のようにしてPHP上でexpectとpasswdコマンドを呼び出してパスワードを変更させています。

$cmd = EXPECT_PATH." -c \"\n";
$cmd .= PASSWD_COMMAND."\n";
$cmd .= "expect \\\"(current) UNIX password:\\\"\n";
$cmd .= "send -- \\\"".$old_password."\\n\\\"\n";
$cmd .= "expect \\\"Enter new UNIX password:\\\"\n";
$cmd .= "send -- \\\"".$new_password."\\n\\\"\n";
$cmd .= "expect \\\"Retype new UNIX password:\\\"\n";
$cmd .= "send -- \\\"".$retype_new_password."\\n\\\"\n";
$cmd .= "expect \\\"passwd: all authentication tokens updated successfully.\\\"\n";
$cmd .= "send -- \\\"exit\\n\\\"\n";
$cmd .= "\"";

$stream = ssh2_exec($connection, $cmd);
fclose($stream);

ところがこの方法だと、実行中にシェル上でps -elf | grep passを実行すると
「/usr/bin/expect -c spawn /usr/bin/passwd expect "(current) UNIX password:" send -- "現在のパスワード\n"…send -- "exit\n"」
のようにパスワードが平文で表示されてしまいセキュリティ上問題があると思われます。
そこでphp側でパスワード等の情報を外部シェルスクリプトに渡して外部シェルスクリプト側でパスワードを変更させようと考えてますが、外部シェルスクリプトに変数を渡す方法を教えていただけますでしょうか。
なお、ssh2_execの第4引数に環境変数を設定できそうなので試してみましたがPHP Warning: ssh2_exec(): Failed setting old_password=oldpassword on remote end in /xxx/xxx/test.php on line XXのように言われてしまいました。
【PHP】下らねぇ質問はここに書き込みやがれ 2©2ch.net
79 :78[]:2015/08/05(水) 02:46:10.16 ID:2Cq1bTVi
すみません。投稿時の文字数の規制のためコードを省略していた際に誤って一緒に削ってしまいましたが、
define('EXPECT_PATH', '/usr/bin/expect');
define('PASSWD_COMMAND', 'spawn /usr/bin/passwd');
が定義されています。
また、>>78のコードの前段階で以下のようにssh接続を行っています。
$server = "localhost";
$port = 22;

if (!$connection = ssh2_connect($server, $port)) {
echo "Connection failed!\n";
exit;
}

if (!ssh2_auth_password($connection, $username, $old_password)) {
echo "Authentication failure!\n";
exit;
}
よろしくお願いいたします。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。