ユーザーがSVNパスワードを変更できるようにします
質問
SVNサーバーをセットアップしました。ユーザーが自分のパスワードを変更できるようにしたいと考えていますが、これを達成する方法はわかりません。ユーザー名とパスワードは、HTPassWDを使用して作成したユーザーファイルに保存されます。理想的には、ユーザーはサーバーにログインし、コマンドhtpasswd/svn/repos/users [username]を実行してパスワードを変更できます。このアプローチの(非常に明白な)問題は、そのファイルをすべての人に読みやすく書くことができるようにすると、誰のパスワードを変更したり、SVNユーザーを削除できることです。いくつかの選択肢は何ですか?私はシェルスクリプトのUNIXシステム管理の経験がないので、これがまったくnoobの質問である場合はすみません。
解決
Apacheを使用していると思います。右?
使用を検討しましたか ldap アカウント管理のために? ApacheはLDAPとかなりうまく統合されており、WindowsドメインアカウントアクセスもLDAP駆動型になります。つまり、Windowsアカウントとパスワードを使用してSubversionにログインすることができ、Windowsグループを使用してアクセスを制御することができます。これが私のセットアップです:
LoadModule dav_svn_module modules/mod_dav_svn.so
<Location /source>
DAV svn
SVNPath /opt/svn_repos
AuthType basic
AuthName "Subversion Repository"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://ldap.mycompany.com:3268/dc=mycompany,dc=com?sAMAccountName" NONE
AuthLDAPBindDN "CN=svnUser,OU=Users,OU=Accounts,DC=mycompany,DC=com"
AuthLDAPBindPassword "Swordfish"
Require ldap-group CN=Developer,CN=Groups,DC=mycompany,DC=com
</Location>
私はかつて、ユーザーがSubversionパスワードを変更できるようにするための小さなPHPプログラムを書きました。私は今それを持っていませんが、それはそれほど難しくありません。ユーザーとHTPASSWDファイルの場所を知っています。あなたがしなければならないのは、ユーザーを新しいパスワードに入力し、暗号化し、HTPassWDファイルを書き直すことです。シンボリックリンクを使用して、HTPassWDファイルをPHPプログラムに表示しました。
しかし、HTPassWDの変更は、Apacheが再起動するまで影響を受けることはない可能性があり、人々が転覆チェックアウトをしているときにApacheを再起動することはできないことがわかりました。