ldap+phpldapadmin+svn-創(chuàng)新互聯(lián)

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

站在用戶的角度思考問題,與客戶深入溝通,找到樂陵網(wǎng)站設(shè)計(jì)與樂陵網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋樂陵地區(qū)。

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個文件

cd /etc/openldap

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

[root@ylkj openldap]# slappasswd

New password:

Re-enter new password:

{SSHA}cM5gJrd3iDG2p13B+f1gpFGH3pFP6hWh(這個復(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)限,待會ldap啟動時(shí)會在下面生成一些文件,不然報(bào)錯

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)(這個文件需要登slapd啟動時(shí),才會生成 所以現(xiàn)在沒有 不用管)

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

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

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

config file testing succeeded

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

rm -rf  slapd.d/* ,

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

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

config file testing succeeded

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

chown -R ldap.ldap slapd.d

接下來啟動slapd, 哈哈 不容易啊

[root@ylkj openldap]# service slapd start

Starting slapd:                       [  OK  ]

接下來我們需要創(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,它會創(chuàng)建根項(xiàng),并為 Hosts、Networks、Group和 People 等創(chuàng)建低一級的組織單元,指定為base.ldif文件,這里我們只有下面這3個

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

[root@openldap-master migrationtools]#cat base.ldif  (你可以看一下這個文件的生成內(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)錯誤:

ldap_bind: Invalid credentials (49)

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

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

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

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

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

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

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

dn 輸入剛才記下的

下面的請按我的設(shè)置一樣的,我嘗試改了個,出錯了(導(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

<Directory /usr/share/phpldapadmin/htdocs>

 Order Deny,Allow

 Deny from all

 Allow from 127.0.0.1 192.168.10.0/24

 Allow from ::1

</Directory>

修改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í)行上面的命令后,自動建立project庫,查看文件夾/home/user/svn/project1發(fā)現(xiàn)包含了conf, db,format,hooks, locks, README.txt等文件,說明一個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會在認(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

啟動SVN

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

測試

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

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

用戶名/密碼: hw/123456

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

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

在svn目錄下,創(chuàng)建多個項(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)限控制的配置文件。(配置語法請參考: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)在針對apache,做配置

編輯httpd.conf,加入

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

Forbidden

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

<Location /svn/>

     DAV svn

     SVNListParentPath on

     SVNParentPath /home/user/svn/

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

     AuthzSVNAccessFile /home/user/svn/authz.conf

    # 在ldap找不到賬號的情況下可以使用其它的認(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=*)"

#這個uid如果寫成cn,訪問 ip/svn/ 時(shí)會彈出一個驗(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

  </Location>

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

[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/

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

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

ldap用戶自己更改密碼

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

   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管理員登錄不了

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

正確方式:

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

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

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

之后重新啟動sqlap文件

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

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享題目:ldap+phpldapadmin+svn-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article0/dppioo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、營銷型網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)站制作外貿(mào)建站、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司