1.修改Apache配置文件
因为我在安装和配置SVN的时候,对Apache的配置文件进行过优化,将所有关于SVN的配置都写在了/opt/apache2/conf/extra/httpd-svn.conf中,然后再通过主配置文件/opt/apache2/conf/httpd.conf中Include conf/extra/httpd-svn.conf方式来调用。
因此,我这里需要修改的就是/opt/apache2/conf/extra/httpd-svn.conf文件,加入以下内容(其中第1,2,6行请根据实际情况进行修改):

Alias /svntools "/opt/apache2/htdocs/svntools"
<Directory "/opt/apache2/htdocs/svntools">
Require valid-user
AuthType Basic
AuthName "GridTeam`s subversion tools"
AuthUserFile "/opt/subversion/conf/svn_passwdfile"
</Directory>

  

2.创建修改自身密码的php页面
mkdir /opt/apache2/htdocs/svntools
cd /opt/apache2/htdocs/svntools

vim svnpass.php
输入以下内容(其中第135,136行请根据实际情况进行修改):

<?
$username = $_SERVER["PHP_AUTH_USER"]; //经过 AuthType Basic 认证的用户名
$authed_pass = $_SERVER["PHP_AUTH_PW"]; //经过 AuthType Basic 认证的密码
$input_oldpass = (isset($_REQUEST["oldpass"]) ? $_REQUEST["oldpass"] : ""); //从界面上输入的原密码
$newpass = (isset($_REQUEST["newpass"]) ? $_REQUEST["newpass"] : ""); //界面上输入的新密码
$repeatpass = (isset($_REQUEST["repeatpass"]) ? $_REQUEST["repeatpass"] : ""); //界面上输入的重复密码
$action = (isset($_REQUEST["action"]) ? $_REQUEST["action"] : ""); //以hide方式提交到服务器的action if($action!="modify"){
$action = "view";
}
else if($authed_pass!=$input_oldpass){
$action = "oldpasswrong";
}
else if(empty($newpass)){
$action = "passempty";
}
else if($newpass!=$repeatpass){
$action = "passnotsame";
}
else{
$action = "modify";
}
?> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Subversion 在线自助密码修改</title>
</head>
<body> <?
//action=view 显示普通的输入信息
if ($action == "view"){
?>
<script language = "javaScript">
<!--
function loginIn(myform)
{
var newpass=myform.newpass.value;
var repeatpass=myform.repeatpass.value; if(newpass==""){
alert("请输入密码!");
return false;
} if(repeatpass==""){
alert("请重复输入密码!");
return false;
} if(newpass!=repeatpass){
alert("两次输入密码不一致,请重新输入!");
return false;
}
return true;
}
//-->
</script>
<style type="text/css">
<!--
table {
border: 1px solid #CCCCCC;
background-color: #f9f9f9;
text-align: center;
vertical-align: middle;
font-size: 9pt;
line-height: 15px;
}
th {
font-weight: bold;
line-height: 20px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-bottom-style: solid;
color: #333333;
background-color: f6f6f6;
}
input{
height: 18px;
}
.button {
height: 20px;
} -->
</style>
<br><br><br>
<form method="post">
<input type="hidden" name="action" value="modify"/>
<table width="220" cellpadding="3" cellspacing="8" align="center">
<tr>
<th colspan=2>Subversion 密码修改</th>
</tr>
<tr>
<td>用户名:</td>
<td align="left"> <?=$username?></td>
</tr>
<tr>
<td>原密码:</td>
<td><input type=password size=12 name=oldpass></td>
</tr>
<tr>
<td>用户密码:</td>
<td><input type=password size=12 name=newpass></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type=password size=12 name=repeatpass></td>
</tr>
<tr>
<td colspan=2>
<input onclick="return loginIn(this.form)" class="button" type=submit value="修 改">
<input name="reset" type=reset class="button" value="取 消">
</td>
</tr>
</table>
</form>
<?
}
else if($action == "oldpasswrong"){
$msg="原密码错误!";
}
else if($action == "passempty"){
$msg="请输入新密码!";
}
else if($action == "passnotsame"){
$msg="两次输入密码不一致,请重新输入!";
}
else{
$passwdfile="/opt/subversion/conf/svn_passwdfile";
$command='"/opt/apache2/bin/htpasswd" -b '.$passwdfile." ".$username." ".$newpass;
system($command, $result);
if($result==0){
$msg="用户[".$username."]密码修改成功,请用新密码登陆.";
}
else{
$msg="用户[".$username."]密码修改失败,返回值为".$result.",请和管理员联系!";
}
} if (isset($msg)){
?>
<script language="javaScript">
<!--
alert("<?=$msg?>");
window.location.href="<?=$_SERVER["PHP_SELF"]?>"
//-->
</script>
<?
}
?>
</body>
</html>

  

修改权限
chown -R apache:apache /opt/apache2/htdocs/svntools

3.登陆页面
3.1 打开页面http://192.168.116.128/svntools/svnpass.php(具体IP请根据实际情况填写)

<转>让SVN用户能够修改自身密码的PHP页面的更多相关文章

  1. 转Centos7.0进入单用户模式修改root密码

    Centos7.0进入单用户模式修改root密码   启动Centos7 ,按空格让其停留在如下界面. 按e进行编辑 在UTF-8后面输入init=/bin/sh 根据提示按ctrl+x 得如下图 输 ...

  2. 忘记root密码怎么办-单用户模式修改root密码

    忘记root密码怎么办-单用户模式修改root密码================================= 1,开机3秒内按下向下的方向键,目的是为了不让它进入系统,而是停留在开机界面. 2 ...

  3. 单用户模式修改root密码

    单用户模式修改root密码 1.进入引导菜单界面2.按e进入grub,在linux或linux16那行结尾加上 rw init=/bin/bash,按Ctrl+x或F103.进入bash-4.3# , ...

  4. 进入单用户模式修改root密码

    进入单用户模式修改root密码 1.进入引导菜单界面2.按e进入grub,在linux或linux16那行结尾加上 rw init=/bin/bash,按Ctrl+x或F103.进入bash-4.3# ...

  5. ansible非root用户批量修改root密码

    前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...

  6. centos 7 下进入单用户模式修改root密码

    centos7进入单用户模式修改root用户密码 在工作中可能会遇到root密码忘记,那么这里就要进入单用户模式下了. 在重启电脑之后 时间:2015-05-13 10:42来源:blog.51cto ...

  7. centos单用户模式修改ROOT密码

    首先启动的时候的时候,需要进入单用户模式(进入单用户模式的前提是系统引导器能正常工作),单用户模式是不需要输入密码,并且(进入单用户模式,没有开启网络服务,不支持远程连接 )网上说可以通过GRUB ( ...

  8. jenkins 新增用户和修改用户名密码

    在某些条件下,jenkins是不允许注册用户的,这是,你可以采用如下的方式来新增用户,对于老的用户,忘记密码了,使用如下方式来重置密码. 1.系统管理-->管理用户 ----> 新建用户 ...

  9. CentOS 7 单用户模式修改root密码

    1)在启动grub菜单,选择编辑选项启动 2)按键盘e键,来进入编辑界面 3)找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh 4)现在按下Control+x,使 ...

随机推荐

  1. java反射机制初探

    最近和一位师兄交流了一下Java,真可谓是大有收获,让我好好的学习了一下javad的反射机制,同终于明白了spring等框架的一个基本实现的思想,那么今天就和大家分享一下java的反射机制. 反射,r ...

  2. Mr. Kitayuta's Colorful Graph 多维并查集

    Mr. Kitayuta's Colorful Graph 并查集不仅可以用于一维,也可以用于高维. 此题的大意是10W个点10W条边(有多种颜色),10W个询问:任意两个节点之间可以由几条相同颜色的 ...

  3. linux中运行python

    1.在终端中输入: python    **.py 2.最爽的方法: emacs中配置python运行环境.

  4. shell中的expr命令

    expr 可以进行的操作如下: 逻辑操作 arg1 | arg2 逻辑或操作,真则返回arg1,否则返回arg2(以null或者0来判断参数的真假,有短路功能) arg1 & arg2 逻辑与 ...

  5. uploadify ,前端页面获取值,json,ajax

    针对这几月的技术,做一次小总结 上传控件uploadify function inexel() { $("#btnExcel").uploadify({ 'method': 'po ...

  6. mysql 5.7占用400M内存优化方案

    mysql出问题了,装了一下新版本,竟然占用400多M的内存,这对于不是服务器,占用是在太高了,再开打一个开发工具,那电脑很卡了,其实是可以优化一下的,在my.ini文件找到这几个参数更改一下,占用大 ...

  7. 快速下单!简化EcStore的购物结算流程

    EcStore拥有完善的购物车功能,方便顾客浏览挑选商品,但是在提交订单时必须要求用户先登录注册 如果是未注册用户还多出一个注册用户的步骤这些多出来的步骤和操作会影响购物下单的流畅性,降低了用户购物下 ...

  8. Django auth 登陆后页面跳转至/account/profile,修改跳转至其他页面

    这几天在学习django,django功能很强大,自带的auth,基本可以满足用户注册登陆登出,简单的用户注册登陆系统使用django auth足矣.当然也不是拿来就能用的,需要自己写登陆页面的模板, ...

  9. javascript get获取参数

    function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...

  10. ASP.NET MVC 4.0 学习2-留言板實現

    新增專案實現留言板功能,瞭解MVC的運行機制 1,新增專案   2,添加數據庫文件message.mdf   Ctrl+W,L 打開資料庫連接,添加存放留言的Atricle表 添加字段,後點擊&quo ...