<转>让SVN用户能够修改自身密码的PHP页面

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请根据实际情况填写)

时间: 2024-11-07 18:52:15

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

单用户模式修改root密码

单用户模式修改root密码 press any key (看到这个界面的时候键盘上的任意按键以进入GNU GRUB模式) edit CentOS edit kernel 设定从单用户模式启动 boot 在单用户模式中修改密码 单用户模式修改root密码

RedHat系统下的网络配置,主机名的修改,进入单用户模式修改root密码和使用SSH远程连接工具

一.操作前准备 a.装有VirtualBox虚拟机和在虚拟机里已安装RedHat系统 b.在百度上搜索下载XSell软件后面会使用它远程连接服务器 二.RedHat系统下的网络配置 a.首先需要对新建的虚拟机进行相应的设置 如图: 这里介绍下为什么要选用桥接模式: VirtualBox中有4中网络连接方式:      a. NAT            网络地址转换模式(Network Address Translation)      b. Bridged Adapter    桥接模式   

linux单用户模式修改root密码和grub密码设定

linux管理员在接管新服务器的时候,有一个常见的问题就是root密码的重置.如root密码长时间不用,或者接管一个陌生的服务器,需要用到单用户模式来重置root的密码. 以下内容是虚拟机VMware11下的centos 6.6版本的介绍: 一.单用户模式修改root密码: 1. 开机显示3s内按任意键,进入选择模式,随便按一个键: 2. 根据提示,点字母e进入编辑模式. 3. 光标选中第二项,再点字母e. 4. 进入编辑模式,在最后面加空格,输入1 .s .S都可以,然后点击回车.再根据后续的

Linux忘记root密码--进入单用户模式修改root密码

在使用Linux系统中,主机维护人员经常会碰到一个问题,就是在拥有root账号权限和密码的用户中,总是会出现忘记root密码的情况. 遇到这种情况,一般情况下,我们主机维护人员就会通过最常用的方法进行root密码重置,那就是单用户模式. 首先,来看一下单用户模式的概念:http://baike.baidu.com/link?url=HCY6FmjdXMtvNLIh9A9L2HC5ndHPZS0OnAfqwMZC0E5IUY5ONKfD5vhaUkZWhQ3BGI9bYPWWVUNv_Qu-YXx

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

忘记root密码怎么办-单用户模式修改root密码================================= 1,开机3秒内按下向下的方向键,目的是为了不让它进入系统,而是停留在开机界面. 2,定位在第一行,按字母e编辑它,就会出现下面的界面 3,往下按方向键,把光标定位在linux开头的那一行.将光标移动到ro这里,把ro改成 rw init=/sysroot/bin/bash.如下图 4,同时按下Ctrl+x,系统会正式进入到emergency模式. 5,用chroot命令切换到原始

linux进入单用户模式修改管理员密码

使用版本为:Centos6.6 1.开机进入启动界面后按e或回车键,进入到GRUB启动菜单,如下图: 2.按e 进入编辑模式,上下键移动切换到第2行kernel这一行: 3.按e进入kernel编辑命令行,如下图,在光标空格然后输入single 或s 或1  输入完成后按回车键,保存返回上一级启动菜单,按b 启动系统 4.启动系统不需要输入管理员密码,进入单用户模式,进入之后可以passwd命令修改管理员密码: 5.单用户模式的运行级别 输入1 运行级别显示为 1 2 [[email prote

使用单用户模式修改root密码

Linux系统的单用户模式类似于Windows系统的安全模式,允许用户进行一些操作,比如启动一些关键服务.在没有设置grub密码的前提下,我们可以使用单用户模式更改或重置root密码. 1.打开虚拟机 2.开机3秒内按任意键进入编辑菜单 3.编辑菜单中方向键"上"."下"用来选择条目,按"e"编辑命令:按"a"修改内核参数:按"c"进入命令行.这里我们按"e"进入编辑模式. 4.方向键&

Linux使用单用户模式修改root密码.

Linux使用过程中,和Windows一样,时间一长后,就会忘记设置的超级用户密码.我们知道在Windows下超级用户是Administrator,而在Linux下超级用户是root.那么,下面我们就开始讲解在Linux忘记root密码时,应该如何设置新的root密码(以CentOS 6.8为例). 1.重启你的Linux操作系统,在3秒内按下Enter键或者↓键.此时可以看见如下界面: 说明:         'e'表示在启动系统前,在命令行编辑.         'a'表示在启动系统前,可以

Linux系统进入单用户模式修改root密码

第一步:开机启动系统,进入启动菜单. 第二步:按回车键进入此界面,选择kernel(系统内核)行,按e进入编辑模式. 第三步:在行尾输入"空格+single",然后回车,回到上一个界面. 第四步:按"b"启动系统,以单用户模式登录 第五步:进入命令行之后,输入命令修改密码(要符合密码原则,此处做实验设置的简单密码) 第六步:重启系统,正常启动之后就可以用新密码登录了