真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ldap+phpldapadmin+svn

1、首先,需要安裝配置openldap:

創(chuàng)新互聯(lián)建站從2013年創(chuàng)立,先為三沙等服務(wù)建站,三沙等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為三沙企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap

cp  /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

在/openldap目錄下只保留slapd.conf cert schem slapd.d 4個(gè)文件

cd /etc/openldap

創(chuàng)建管理員密碼: 

[root@ylkj openldap]# slappasswd

New password:

Re-enter new password:

{SSHA}cM5gJrd3iDG2p13B+f1gpFGH3pFP6hWh(這個(gè)復(fù)制到配置文件slapd.conf中)

vim slapd.conf

修改一下配置:

suffix          "dc=my-domain,dc=com"

checkpoint      1024 15

rootdn          "cn=Manager,dc=my-domain,dc=com"

改為

suffix          "dc=www,dc=example,dc=com"

checkpoint      1024 15

rootdn          "cn=Manager,dc=www,dc=example,dc=com"

rootpw {SSHA}cM5gJrd3iDG2p13B+f1gpFGH3pFP6hWh

完成,檢查配置文件

[root@ylkj openldap]# slaptest -f slapd.conf

56e182f3 bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).(看這里,顯示DB_CONFIG沒找到 )

Expect poor performance for suffix "dc=my-domain,dc=com".

56e182f3 bdb_db_open: database "dc=my-domain,dc=com": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2).

56e182f3 backend_startup_one (type=bdb, suffix="dc=my-domain,dc=com"): bi_db_open failed! (2)

slap_startup failed (test would succeed using the -u switch)

解決方法: cp /usr/share/openldap-servers/DB_CONFIG.example  /var/lib/ldap/DB_CONFIG

同時(shí)修改 /var/lib/ldap/的權(quán)限,待會(huì)ldap啟動(dòng)時(shí)會(huì)在下面生成一些文件,不然報(bào)錯(cuò)

chown -R ldap.ldap /var/lib/ldap

繼續(xù)檢查配置文件

[root@ylkj openldap]# slaptest -f slapd.conf

56e183c1 bdb_db_open: database "dc=my-domain,dc=com": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2).

56e183c1 backend_startup_one (type=bdb, suffix="dc=my-domain,dc=com"): bi_db_open failed! (2)(這個(gè)文件需要登slapd啟動(dòng)時(shí),才會(huì)生成 所以現(xiàn)在沒有 不用管)

slap_startup failed (test would succeed using the -u switch)(這個(gè)文件需要登slapd啟動(dòng)時(shí),才會(huì)生成 所以現(xiàn)在沒有 不用管)

當(dāng)然也可以用加上-u查看 是沒錯(cuò)的

[root@ylkj openldap]# slaptest -f slapd.conf  -u

config file testing succeeded

刪掉slapd.d下的文件,重新生成 不然待會(huì)啟動(dòng)時(shí)會(huì)報(bào)錯(cuò)

rm -rf  slapd.d/* ,

不能把slapd.d 這個(gè)目錄給刪了,否則進(jìn)行下面一步時(shí)也會(huì)出錯(cuò)

[root@ylkj openldap]# slaptest -f slapd.conf  -F slapd.d -u

config file testing succeeded

同時(shí)修改slapd.d的屬主

chown -R ldap.ldap slapd.d

接下來啟動(dòng)slapd, 哈哈 不容易啊

[root@ylkj openldap]# service slapd start

Starting slapd:                                            [  OK  ]

接下來我們需要?jiǎng)?chuàng)建用戶并把用戶導(dǎo)入到ldap里面去

useradd user1;useradd user2;useradd user3

同時(shí)給用戶創(chuàng)建密碼(不要忘了這步,不然弄好也是白忙活)

echo “密碼”| passwd --stdin user1

echo “密碼”| passwd --stdin user2

echo “密碼”| passwd --stdin user3

安裝及配置遷移工具

[root@openldap-master openldap]# yum install migrationtools -y

[root@openldap-master openldap]# cd /usr/share/migrationtools/

[root@openldap-master migrationtools]# vi migrate_common.ph 

     70 # Default DNS domain

     71 $DEFAULT_MAIL_DOMAIN = "www.example.com";

     72 

     73 # Default base

     74 $DEFAULT_BASE = "dc=www,dc=example,dc=com";

主要的概念:

dn:唯一區(qū)分名

dc:所屬區(qū)域

ou:所屬組織

cn/uid:全名/登錄ID

運(yùn)行腳本migrate_base.pl,它會(huì)創(chuàng)建根項(xiàng),并為 Hosts、Networks、Group和 People 等創(chuàng)建低一級(jí)的組織單元,指定為base.ldif文件,這里我們只有下面這3個(gè)

[root@openldap-master migrationtools]# ./migrate_base.pl >base.ldif

[root@openldap-master migrationtools]#cat base.ldif  (你可以看一下這個(gè)文件的生成內(nèi)容)

接下來創(chuàng)建用戶和組的數(shù)據(jù)庫文件

[root@openldap-master migrationtools]# grep ^user /etc/passwd >user

[root@openldap-master migrationtools]# ./migrate_passwd.pl user ./user.ldif

[root@openldap-master migrationtools]# grep ^user /etc/group >group

[root@openldap-master migrationtools]# ./migrate_group.pl group ./group.ldif

[root@openldap-master migrationtools]# ll base.ldif user.ldif group.ldif

遷移系統(tǒng)用戶到ldap數(shù)據(jù)庫

ldapadd -D "cn=Manager,dc=www,dc=example,dc=com" -W -x -f /usr/share/migrationtools/base.ldif

Enter LDAP Password: 

adding new entry "dc=www,dc=example,dc=com"

adding new entry "ou=People,dc=www,dc=example,dc=com"

adding new entry "ou=Group,dc=www,dc=example,dc=com"

ldapadd -D "cn=Manager,dc=www,dc=example,dc=com" -W -x -f /usr/share/migrationtools/user.ldif

Enter LDAP Password:

adding new entry "uid=user1,ou=People,dc=www,dc=example,dc=com"

adding new entry "uid=user2,ou=People,dc=www,dc=example,dc=com"

adding new entry "uid=user3,ou=People,dc=www,dc=example,dc=com"

ldapadd -D "cn=Manager,dc=www,dc=example,dc=com" -W -x -f /usr/share/migrationtools/group.ldif

Enter LDAP Password: 

adding new entry "cn=user1,ou=People,dc=www,dc=example,dc=com"

adding new entry "cn=user2,ou=People,dc=www,dc=example,dc=com"

adding new entry "cn=user3,ou=People,dc=www,dc=example,dc=com"

如果出現(xiàn)錯(cuò)誤:

ldap_bind: Invalid credentials (49)

就表示你要么給出了錯(cuò)誤的”cn=”條目,要么給出了錯(cuò)誤的密碼

Enter LDAP Password:(輸入你剛才設(shè)置的密碼),正確之后會(huì)顯示:

查看導(dǎo)入的用戶: ldapsearch   -x -b  "dc=www,dc=example,dc=com"

記下這個(gè) dn 的內(nèi)容

# user1, People(請(qǐng)注意這,不是group,不要弄錯(cuò)了), www.ulink.com

dn: uid=user1,ou=People,dc=www,dc=ulink,dc=com

接下來在web頁面添加用戶,其實(shí)現(xiàn)在可以把之前在服務(wù)器添加的用戶給刪掉(安全起見)圖二輸入密碼和賬號(hào)為空,不能輸

dn 輸入剛才記下的

下面的請(qǐng)按我的設(shè)置一樣的,我嘗試改了個(gè),出錯(cuò)了(導(dǎo)致我重弄了5,6遍)

 

 

phpldapadmin安裝

yum安裝apache+php環(huán)境

yum install httpd php php-bcmath php-gd php-mbstring php-xml php-ldap

yum安裝phpldapadmin

yum install phpldapadmin  #要有epel源

修改配置文件,增加

vi /etc/httpd/conf/httpd.conf 

ServerName www.ulink.com

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs

Alias /ldapadmin /usr/share/phpldapadmin/htdocs

 

  Order Deny,Allow

  Deny from all

  Allow from 127.0.0.1 192.168.10.0/24

  Allow from ::1

修改phpldapadmin配置文件

1

2

3

4[root@openldap-master ~]# vi /etc/phpldapadmin/config.php

# line 397: uncomment, line 398: make it comment

$servers->setValue('login','attr','dn');

// $servers->setValue('login','attr','uid');

 

輸入ip或域名/ldapadmin進(jìn)行訪問,填上ldap管理員的密碼,然后在里面添加用戶即可,要想用戶生效,還需去redmine的ldap用戶認(rèn)證下去配置

檢查已安裝版本

#檢查是否安裝了低版本的SVN

[root@localhost /]# rpm -qa subversion

#卸載舊版本SVN

[root@localhost modules]# yum remove subversion

安裝SVN

[root@localhost modules]# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_MySQL

確認(rèn)已安裝了svn模塊

[root@localhost /]# cd /etc/httpd/modules

[root@localhost modules]# ls | grep svn

mod_authz_svn.so

mod_dav_svn.so

驗(yàn)證安裝

檢驗(yàn)已經(jīng)安裝的SVN版本信息 

[root@localhost modules]# svnserve --version

svnserve,版本 1.6.11 (r934486)

代碼庫創(chuàng)建

SVN軟件安裝完成后還需要建立SVN庫 

[root@localhost modules]# mkdir -p /home/user/svn/project1

[root@localhost modules]# svnadmin create /home/user/svn/project1

執(zhí)行上面的命令后,自動(dòng)建立project庫,查看文件夾/home/user/svn/project1發(fā)現(xiàn)包含了conf, db,format,hooks, locks, README.txt等文件,說明一個(gè)SVN庫已經(jīng)建立。

配置代碼庫

進(jìn)入上面生成的文件夾conf下,進(jìn)行配置 

[root@localhost modules]# cd /home/user/svn/project1/conf

用戶密碼passwd配置

[root@localhost password]# cd /home/user/svn/project1/conf

[root@admin conf]# vi   passwd

修改passwd為以下內(nèi)容:

[users]

# harry = harryssecret

# sally = sallyssecret

hw=123456

權(quán)限控制authz配置

[root@admin conf]# vi   authz

目的是設(shè)置哪些用戶可以訪問哪些目錄,向authz文件追加以下內(nèi)容:

#設(shè)置[/]代表根目錄下所有的資源 

[/]

hw=rw

服務(wù)svnserve.conf配置

[root@admin conf]# vi   svnserve.conf

追加以下內(nèi)容:

[general]

#匿名訪問的權(quán)限,可以是read,write,none,默認(rèn)為read

anon-access=none

#使授權(quán)用戶有寫權(quán)限 

auth-access=write

#密碼數(shù)據(jù)庫的路徑 

password-db=passwd

#訪問控制文件 

authz-db=authz

#認(rèn)證命名空間,subversion會(huì)在認(rèn)證提示里顯示,并且作為憑證緩存的關(guān)鍵字 

realm=/home/user/svn/

配置防火墻端口

[root@localhost conf]# vi /etc/sysconfig/iptables

添加以下內(nèi)容: 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

保存后重啟防火墻 

[root@localhost conf]# service iptables restart

啟動(dòng)SVN

svnserve -d -r /home/user/svn/

測試

SVN服務(wù)已經(jīng)啟動(dòng),使用客戶端測試連接。 

客戶端連接地址:svn://192.168.10.254

用戶名/密碼: hw/123456

測試創(chuàng)建文件夾等操作。

我們現(xiàn)在結(jié)合svn+ldap

在svn目錄下,創(chuàng)建多個(gè)項(xiàng)目

# svnadmin create project2

# svnadmin create project3

# svnadmin create project4

# svnadmin create project5

# ls

project1  project2  project3  project4  project5 

# 創(chuàng)建authz.conf文件,作為工程權(quán)限控制的配置文件。(配置語法請(qǐng)參考:http://svnbook.red-bean.com/en/1.5/svn.serverconfig.pathbasedauthz.html)

# vi authz.conf

 

Authz.conf代碼   

1.[groups]  

2.admin=hw 

3.   

4.[/]  

5.@admin=rw  

6.*=  

7.#*=r  

8.   

9.  

10.[project1:/]  

11.hw=r  

完成以上后,待用,后續(xù)使用apache整合。

現(xiàn)在針對(duì)apache,做配置

編輯httpd.conf,加入

#這里如果寫成/svn,訪問時(shí)報(bào)錯(cuò)

Forbidden

You don't have permission to access /svn/ on this server.

         DAV svn

         SVNListParentPath on

         SVNParentPath /home/user/svn/

#         AuthUserfile /home/user/svn/conf/passwd

         AuthzSVNAccessFile /home/user/svn/authz.conf

        # 在ldap找不到賬號(hào)的情況下可以使用其它的認(rèn)證方式(如,密碼文件)

        AuthzLDAPAuthoritative off

        # openLDAP的管理賬戶

       AuthLDAPBindDN "cn=Manager,dc=www,dc=ulink,dc=com"

       AuthLDAPBindPassword ******(ldap的管理員密碼)

         AuthBasicProvider ldap

         # 認(rèn)證數(shù)據(jù)來源:"ou=rd,dc=cq,dc=feinno,dc=com" 下所有子entity的uid作為認(rèn)證用戶名

         AuthLDAPURL "ldap://192.168.10.254:389/ou=People,dc=www,dc=ulink,dc=com?uid?sub?(objectClass=*)"

#這個(gè)uid如果寫成cn,訪問 ip/svn/ 時(shí)會(huì)彈出一個(gè)驗(yàn)證界面,不斷驗(yàn)證 不能成功

         # http 基本認(rèn)證

         AuthType Basic

         AuthName "ok"

         Require valid-user

         # 設(shè)置目錄權(quán)限,實(shí)現(xiàn)列表所有工程目錄

         Options Indexes FollowSymLinks

         Order allow,deny

         Allow from all

   

還有一個(gè)問題就是不能直接在svn目錄下生成庫文件,否則在ldap認(rèn)證時(shí)會(huì)報(bào)錯(cuò)

[Wed Mar 16 18:02:55 2016] [error] [client 192.168.10.200] (20014)Internal error: Can't open file '/home/user/svn/project1/format': No such file or directory, referer: http://192.168.10.254/svn/

[Wed Mar 16 18:02:55 2016] [error] [client 192.168.10.200] Could not fetch resource information.  [500, #0], referer: http://192.168.10.254/svn/

我所碰到的就是這三個(gè)問題(記得查看下httpd的錯(cuò)誤日志,很有用),另外網(wǎng)頁上訪問時(shí)是這樣的 ip/svn/,輸入你的ldap賬號(hào)和密碼就行了

效果圖,注意一下網(wǎng)頁緩存

 

ldap用戶自己更改密碼

openldap 2.4 版本 系統(tǒng)認(rèn)證無法更改密碼,錯(cuò)誤提示:

     openldap: LDAP password information update failed: Insufficient access

tail /var/log/securce

    passwd: pam_unix(passwd:chauthtok): user "test" does not exist in /etc/passwd

解決方案:

   在 sldap.conf 中加入:

  

access to attrs=userPassword

       by self write

       by anonymous auth

       by dn.base="cn=Manager,dc=www,dc=ulink,dc=com" write

       by * none

access to *

       by self write

       by dn.base="cn=Manager,dc=www,dc=ulink,dc=com" write

       by * read

上面行最主要的加在database config 前面,否則不生效。

然后執(zhí)行

rm -rf /etc/openldap/slapd.d/*

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

chown -R ldap:ldap /etc/openldap/slapd.d

service slapd restart

編輯配置文件 vim /etc/phpldapadmin/config.php

 

這里設(shè)為dn登錄方式,如果設(shè)成了uid登錄方式,用戶可以改密碼,但是ldap管理員登錄不了

 

 

這樣雖然能登陸,但是改密碼會(huì)報(bào)錯(cuò)(可以改得了密碼)

 

正確方式: 

 

 

如果要重新導(dǎo)入用戶需要?jiǎng)h除/var/lib/ldap下的除了DB_CONFIG 下的所有文件在把

Sldap.d下的所有文件刪除 之后重新導(dǎo)入三個(gè)ldif (user.ldif,basc.ldif,group.ldif)

重新生成sldap.d下的文件slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

之后重新啟動(dòng)sqlap文件

重新導(dǎo)入的用戶生效


網(wǎng)頁標(biāo)題:ldap+phpldapadmin+svn
分享URL:http://weahome.cn/article/jodjdj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部