回答:
/programming/645659/how-do-you-htdigest-400-user-accountsを参照してください
最も投票された回答の提案の1つに基づく最も簡単な方法は、おそらくこれです。
digest="$( printf "%s:%s:%s" "$user" "$realm" "$password" |
md5sum | awk '{print $1}' )"
printf "%s:%s:%s\n" "$user" "$realm" "$digest" >> "/etc/apache2/pw/$user"
私が使ってきたmd5sum
のGNU coreutilsのからとawk
いうだけよりもmd5
、それは私が私のシステムにインストールされていると私は含まれていたパッケージ見つけ出す気にすることができませんでした何だから/usr/bin/md5
-あなたはまた、使用することができsha512sum
、または他のハッシュプログラム。
たとえば、user = foo、realm = bar、およびpassword = bazの場合、上記のコマンドは次のようになります。
foo:bar:5bf2a4095f681d1c674655a55af66c5a
htdigestは不思議なことや異常なことは何もしません。ユーザー、レルム、パスワードを正しい形式で出力するだけです。上記のコマンドと同じです。
特定のuser:realmのダイジェストを削除するのは、単に追加するのではなく、sedで簡単に実行できます。
sed -i -e "/^$user:$realm:/d" "/etc/apache2/pw/$user"
また、user:realmのダイジェストの更新/変更は、ダイジェストラインを生成するための上記の方法と組み合わせてsedを使用して行うこともできます。例えば
digest="$( printf "%s:%s:%s" "$user" "$realm" "$new_password" |
md5sum | awk '{print $1}' )"
sed -i -e "/^$user:$realm:/ c$user:$realm:$digest" "/etc/apache2/pw/$user"
PHP http://fr.php.net/manual/en/function.proc-open.phpの「proc_open」関数を確認して ください
オプションでhtdigestを実行し、パイプに新しいパスワードを送信できます。
htdigestジョブを実行するPHP関数を見つけて作成できます。proc_openを使用するよりも簡単です...