exec() を介してスクリプトを呼び出す PHP コードを実行しています。このスクリプトは、svn commit
ユーザーを指定せずにコマンドを実行します。このスクリプトを実行するユーザー (彼を NICK と呼びましょう) ( への呼び出しによって検証されます) は、オプションで指定されwhoami
た証明書を持っています。この証明書ファイルには、ユーザー名が添付されています (証明書の内容を so のように出力することで確認できます)。~/.subversion
~/.subversion/servers
ssl-client-cert-file
このスクリプトが NICK の crontab の cron ジョブを介して呼び出されると、コミットの SVN 作成者は、前述の証明書の作成者と同じになります。しかし、同じスクリプトが PHP の exec() 関数を介して呼び出されると、コミットの作成者は別のユーザーになります。この他のユーザーが使用されている理由を、一生理解できません。commit コマンドに--username
オプションを指定しようとしsvn propset svn:author
ましたが、無駄に使用しようとしました。なぜこれが当てはまるのか誰にもわかりますか?PHP / Apache は別の証明書を使用していますか? 何が起こっているか、またはこの動作を変更する方法に関する情報は大歓迎です。