用户svn密码自定义
由于在linux系统Apache+svn服务器,用户需要自定义密码怎么办呢?
1.创建脚本目录
mkdir -p /var/www/svn/svntools
2.创建apache配置文件
touch /etc/httpd/conf.d/alias.conf
3.输入以下内容:
Alias /svntools "/var/www/svn/svntools"
<Directory "/var/www/svn/svntools">
Require valid-user
AuthType Basic
AuthName "svn tools"
AuthUserFile "/var/www/svn/passwd"
</Directory>
4.创建修改密码的php脚本,当然不一定是php脚本,js脚本也可轻易做到等等
- <?php
- $username = $_SERVER["PHP_AUTH_USER"]; //获取当前用户名
- $authed_pass = $_SERVER["PHP_AUTH_PW"]; //获取当前用户密码
- $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=UTF-8">
- <title>SVN密码修改</title>
- </head>
- <body>
- <?php
- //action=view 显示普通的输入信息
- if ($action == "view"){
- ?>
- <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>SVN密码修改</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="/var/www/svn/project/conf/passwd";
- $command='"htpasswd" -b '.$passwdfile." ".$username." ".$newpass;
- system($command, $result);
- if($result==0){
- $msg="用户[".$username."]密码修改成功,请用新密码登陆.";
- }
- else{
- $msg="用户[".$username."]密码修改失败,请和管理员联系!";
- }
- }
- if (isset($msg)){
- ?>
- <script language="javaScript">
- <!--
- alert("<?=$msg?>");
- window.location.href="<?=$_SERVER["PHP_SELF"]?>"
- //-->
- </script>
- <?
- }
- ?>
- </body>
- </html>
可能出现问题
(1).php文件放置位置 ? /var/www/svn/svntools/svnpass.php
(2).访问路径?http://ip:port/svntools/svnpass.php
(3).apache端口冲突?修改/etc/httpd/conf/httpd.conf中的端口号
(4).php文件乱码问题?查看php文件格式是否为utf8
(5).修改passwd权限问题? chown root:root passwd chmod 777 * -R chmod -R passwd 777 chmod 777 passwd -R
(6).
如查看apache日志中有如下错误[Wed Jun 13 09:34:34.462360 2018] [core:notice] [pid
22132] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
sudo: unable to open audit system: Permission denied
sudo: pam_open_session: System error
sudo: policy plugin failed session initialization
sudo: unable to open audit system: Permission denied?
解决方法1:setenforce 0 :用于关闭selinux防火墙,但重启后失效。
[root@localhost ~]# setenforce 0
[root@localhost ~]# /usr/sbin/sestatus 1、关闭firewall防火墙,保证apache能够访问正常。2、没有关闭selinux,时出现了如上错误。
解决方法2: 永久关闭修改selinux的配置文件,重启后生效。
打开 selinux 配置文件
[root@localhost ~]# vim /etc/selinux/config
修改 selinux 配置文件
将SELINUX=enforcing改为SELINUX=disabled,保存后退出
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
此时获取当前selinux防火墙的安全策略仍为Enforcing,配置文件并未生效。
[root@localhost ~]# getenforce
Enforcing
重启
[root@localhost ~]# reboot
验证
[root@localhost ~]# /usr/sbin/sestatus
SELinux status: disabled
[root@localhost ~]# getenforce
Disabled
(7)如果出现用户权限不足?
首先 查看你的apache用户或者nginx php-fpm用户
可以使用 ps -ef | grep httpd 命令来查看 其他同理
经查我的apache用户为apache用户
然后 visudo 或者 vim /etc/sudoers 找到
## Allow root to run any commands anywhere
root ALL=(ALL) ALL这一行 在下边追加
- apache ALL=(root) NOPASSWD:ALL
用户svn密码自定义的更多相关文章
- win10怎么修改svn的用户和密码
win10怎么修改svn的用户和密码(一般为默认),其他的系统也差不多 方法/步骤 1.方法一: 1.双击我的电脑在c盘找到auth文件夹 C:\Users\系统帐户名\AppData\Roaming ...
- 添加linux中svn的用户和密码
1:首先找到svn路径 find / -iname "svn" 一般找到svn路径之后就可以找到配置文件位置啦 svn/svnrepos/jgcp/conf 2:进入目录之后修改a ...
- 配置svn用户及密码
配置账户及密码 格式: user=passwd 配置新的账户 [root@mysql conf]# vim passwd 创建两个账户 [root@mysql conf]# egrep -v &q ...
- 系统开发中使用拦截器校验是否登录并使用MD5对用户登录密码进行加密
项目名称:客户管理系统 项目描述: 项目基于javaEE平台,B/S模式开发.使用Struts2.Hibernate/Spring进行项目框架搭建.使用Struts中的Action 控制器进行用户访问 ...
- 忘记SVN密码怎么办
1:下载TSvnPwd.exe 2:使用wireshark抓包.例如: PROPFIND /svn/dev2/!svn/vcc/default HTTP/1.1Host: 192.168.156.1: ...
- 如何删除eclipse中已经保存的svn密码
一.打开eclipse--->点击Window--->点击Perference,打开eclipse配置,输入svn,然后点击svn,找到下方svn接口,查看下svn是什么类型的接口,如果是 ...
- django用户认证系统——自定义认证后台8
Django auth 应用默认支持用户名(username)进行登录.但是在实践中,网站可能还需要邮箱.手机号.身份证号等进行登录,这就需要我们自己写一个认证后台,用于验证用户输入的用户信息是否正确 ...
- svn密码 在服务端 到底是明文保存,还是密文保存
svn密码 在服务端 到底是明文保存,还是密文保存 之前在ubuntu上搭建svn服务端,记得密码就是明文保存的, 但最近项目,我们老大说,他搭建的是加密后的,我就比较纳闷了, 经过偷偷的瞄一下,不就 ...
- Django项目:CRM(客户关系管理系统)--45--37PerfectCRM实现King_admin添加用户时密码加密
#views # ————————02PerfectCRM创建ADMIN页面———————— from django.shortcuts import render # ————————04Perfe ...
随机推荐
- centos 磁盘挂载
1.更改磁盘格式 fdisk -l fdisk /dev/vdb mkfs.xfs /dev/vdb1 mkfs.xfs /dev/vdb1 -f 2.查看UUID blkid 3.挂载文件夹 vim ...
- ip2long与long2IP 分析
<?php $ip='47.93.97.127'; $long=sprintf("%u",ip2long($ip));//string(9) "794648959& ...
- Python--day71--分页功能
分页功能代码: from django.shortcuts import render # Create your views here. from app01 import models def b ...
- joinColumns和inverseJoinColumns的用法
最近在工作中使用springside,里面用到了hibernate的多对多 一开始我在配置department(部门表)和menu(栏目表)的时候,这样写的. Department实体类中的getMe ...
- vue通信、传值的方式
原文博主地址:https://blog.csdn.net/qq_35430000/article/details/79291287 看完还是受益匪浅,讲得很详细..感谢!
- linux 手动睡眠
在 Linux 内核的之前的版本, 正式的睡眠要求程序员手动处理所有上面的步骤. 它是一 个繁琐的过程, 包含相当多的易出错的样板式的代码. 程序员如果愿意还是可能用那种方 式手动睡眠; <li ...
- vue-learning:29 - component - 组件三大API之三:slot
组件三大API之三: slot <slot>标签 v-slot指令 普通插槽 有默认值的插槽 具名插槽 作用域插槽 v-slot是Vue 2.6.0引入的一个新语法指令,目的是统一之前sl ...
- vue-learning:2 - template - directive
指令 directive 在上一节我们知道,VUE的template模板通过VUE指令API实现与页面的视图层联系.所以本节将聚集在实现视图层交互的VUE指令系统directive的基础使用. 我们先 ...
- [板子]SPFA算法+链式前向星实现最短路及负权最短路
参考:https://blog.csdn.net/xunalove/article/details/70045815 有关SPFA的介绍就掠过了吧,不是很赞同一些博主说是国内某人最先提出来,Bellm ...
- 云栖深度干货 | 打造“云边一体化”,时序时空数据库TSDB技术原理深度解密
本文选自云栖大会下一代云数据库分析专场讲师自修的演讲——<TSDB云边一体化时序时空数据库技术揭秘> 自修 —— 阿里云智能数据库产品事业部高级专家 认识TSDB 第一代时序时 ...