Samba+LDAP+LAM管理工具应用

文档介绍

  • 作者:gavin
  • 电子邮箱:gavin.zhou@gmail.com
  • MSN:gavin_zhm@msn.com
  • 博客地址:http://blog.yepn.net
  • Wiki地址:http://wiki.yepn.net
  • 建立日期:2008年04月11日,最后修改日期:2008年07月15日
  • 版本: 0.12
  • 版权说明:本文基于创作共用约定,内容归作者版权所有,欢迎大家转载,但要请保留作者的完整信息和出处,谢谢!

本文参考

关于

由于公司使用的文件服务器空间不足(只有750G),所以准备新装一台服务器。另外,小弟现在管理公司网络,每新来一名员工就要建6-7个ID,网络认证ID,Samba ID,邮件ID,SNS ID,Desknet ID等等,让日常维护工作量大大增加,所以打算在公司应用LDAP服务器,也可以借这次新的Samba服务器,先把SambaID导出到LDAP中。

小弟在服务器构筑过程中也有很多很多的问题多用GOOGLE是最好的方法,如果能找到高人请教也是一种方法,不过总有效的还是GOOGLE一下,这样对自己也是一种学习过程。另外,对于一些LINUX前辈写的文章要仔细阅读特别是安装文件的版本号,往往很小的细节会让你浪费一天的时间。

文章分为

  1. OS准备确认
  2. OpenLDAP和SAMBA安装设置
  3. Samba用户和组导入(smbldap-tool使用例)
  4. LAM软件安装和应用

服务器环境

CentOS 5.0 Linux server 2.6.18-53.1.14.el5

安装后先配置一下yum再升级一下,Centos带的yum站点好像没有REDHAT家的好用,有可能是个人感觉,不过我还是按照Centos网站上写的添加了一下装了一下RPMforge

#yum -y install yum-priorities
#vi /etc/yum/pluginconf.d/priorities.conf
[main]
enabled=1
#vi /etc/yum.repos.d/
priority=N   #我设置的N=1
#wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
#rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
#yum check-update   #升级一下
Apache 2.2.6 Released (现在2.2.8已经Released了)

源码包安装

./configure && make && make install
安装后Document Root为
/usr/local/apache2/htdocs
PHP Version 5.2.5

源码包安装

./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring \
--with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mysql \
--with-mcrypt  --with-xsl --with-gettext --with-ldap --with-mhash \
--with-imap --with-imap-ssl && make && make install
#因为我机器上还有其他软件,所以在装PHP的时候顺便把让他支持SQL

对于参数有不明白的朋友可以GOOGLE一下,讲的会比我写的明白。

PHP安装后要设置Apache的配置文件httpd.conf,内容请参考PHP源码包中的INSTALL文件,我就是按上面写的。

OpenLDAP和Samba安装

因为这两个安装起来比较麻烦,所以都用的yum安装,如果想用源码包安装的话,需要自己安装一些LIB等文件,详细说明请参考我的WIKI网站http://wiki.yepn.net中OpenLDAP中有详细的源包码说明。上面提到的Apache和PHP源码包安装也有详细的说明。

smbldap-tool安装

这个工具用起来很方便。一样用yum安装 对于Samba和LDAP用户管理需要

#yum -y install smbldap-tool

OpenLDAP配置文件说明

cp /usr/share/doc/samba-3.0.25b/LDAP/samba.schema /etc/openldap/schema/
vi /etc/openldap/sladp.conf

特别注意:下面的配置文件使用时请去掉注释,LDAP对配置文件格式有严格要求。

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/samba.schema
# 确认是不是加载了samba.schema文件

allow bind_v2
#允许使用bind v2 有些设备需要用到Samba用V3

pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args
#loglevel       296
#调试的时候加的LOG配置文件,运行正常后去掉了,不想生成大量的LOG文件

access to attrs=userPassword
        by self write
        by anonymous auth
        by dn="uid=admin,ou=Users,dc=yepn,dc=com" write
        by * none
access to *
        by self write
        by dn="uid=admin,ou=Users,dc=yepn,dc=com" write
        by * read

#上面是配置访问权限
对于userPassword字段自己可以改写,用户admin可以改写,匿名用户可以认证,其他拒绝。
自己可以写自己dc中的所有权限,admin用户可以写全部,所有人可读。
上面ACL的顺序也很重要,调换的话会出现PAM认证问题。

database        bdb
suffix dc=yepn,dc=yepn
rootdn cn=root,dc=yepn,dc=com
directory       /var/lib/ldap

index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub
index sambaSID,sambaSIDList,sambaGroupType      eq,pres

# Replicas of this database
replogfile /var/lib/ldap/openldap-master-replog
#replica host=172.30.4.91:389 starttls=critical
replica host=172.30.4.91:389
     binddn="cn=root,dc=yepn,dc=com"
     credentials=111111
     bindmethod=simple
#上段为从LDAP服务器,只有一台LDAP服务器的网络配置不太稳定,万一LDAP服务器坏掉,会出现很多系统不能登陆的问题。
同步数据前,先要将主服务器上数据导入从服务器后才可以,方法如下
#ldapsearch -x -h 主服务器IP > database.ldif
#ldapadd -x -D "cn=root,dc=yepn,dc=net" -W -f database.ldif

rootpw 000000   #密码名文,过后会把ROOT从配置文件中删除,用admin用户管理LDAP

配置文件确认无误后启动LDAP
#service ldap start
看到下面的信息说明你的LDAP正常启动了
Checking configuration files for slapd:  config file testing succeeded
Starting slapd:                                            [  OK  ]
Starting slurpd:                                           [  OK  ]

通过LDAP用户登陆系统

用来跟踪特定身份验证机制是否已经启用的文件是 /etc/sysconfig/authconfig。我们可以希望以下条目的值都是 “yes”:

USELDAP=yes
USELDAPAUTH=yes
USEMD5=yes
USESHADOW=yes
USELOCAUTHORIZE=yes

PAM 和 NSS 模块使用的基本配置文件是 /etc/ldap.conf。
host 选项指定 LDAP 服务器,base 选项指定这个目录使用的 DN,最初我们希望关闭加密功能:

host dhcp64-233.ibm.com
base dc=ibm,dc=com
ssl off

要让 NSS 服务使用 OpenLDAP 服务器,需要将 “ldap” 添加到 /etc/nsswitch.conf 文件的 passwd、shadow 和 group 行中,如下所示:

passwd: files ldap
shadow: files ldap
group: files ldap

要让 PAM 身份验证服务使用 OpenLDAP 服务器,请将 pam_ldap 行加入到 /etc/pam.d/system-auth 中
位置在对应的标准 pam_unix.so 条目之后。尽管其他设置也可以实现相同的结果,但是我使用下面的文件设置:

auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so

account required /lib/security/$ISA/pam_unix.so broken_shadow
account sufficient /lib/security/$ISA/pam_localuser.so
account sufficient /lib/security/$ISA/pam_succeed_if.so uid %lt; 100 quiet
account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_ldap.so
account required /lib/security/$ISA/pam_permit.so

password requisite /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password sufficient /lib/security/$ISA/pam_ldap.so use_authtok
password required /lib/security/$ISA/pam_deny.so

session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
session optional /lib/security/$ISA/pam_ldap.so

Samba设置

Samba安装可以参考Fandy的大作这篇文章我的Samba配置配置是按照他上面写的配置的。 下面是我的配置文件,简单说明一下,因为原文的作者写的很细。

# Global parameters
# Version 2008-03-28-01
[global]
        workgroup = YEPN
        netbios name = vanilla
        security = user
        server string = Samba Server 7T %v
        encrypt passwords = Yes
        obey pam restrictions = No
        ldap passwd sync = yes

       #与LDAP密码同步
        log level = 3
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 100000
        time server = Yes
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        mangling method = hash2
        Dos charset = UTF-8
        Unix charset = UTF-8
        logon script = %U.bat
        logon drive = H:
        domain logons = Yes
        os level = 65
        preferred master = Yes
        passdb backend = ldapsam:ldap://127.0.0.1/
        #指定LDAP服务器

        ldap admin dn = uid=root,dc=yepn,dc=net
        #管理员用户

        ldap suffix = dc=yepn,dc=net
        #搜索域

        ldap group suffix = ou=Groups
        #用户级的检索字段

        ldap user suffix = ou=Users
        #用户检索字段

        add user script = /usr/sbin/smbldap-useradd -a -m "%u"
        #添加用户
        ldap ssl = off
        ldap delete dn = Yes
        delete user script = /usr/sbin/smbldap-userdel -r "%u"
        #删除用户

        add group script = /usr/sbin/smbldap-groupadd -a -p "%g"
        #添加组

        delete group script = /usr/sbin/smbldap-groupdel "%g"
        #删除组

        add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
        #把用户加到指定组

        delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
        #从组中删除用户

        set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
        #设定用户的属组
        #以上配置是跟LDAP相关的,其他对于共享目录等控制可以自行添加

[homes]
        comment = Home Directories %U, %u
        browseable = no
        writeable = yes
        read only = no
        force create mode = 0700
        force directory mode = 0700
        directory mode = 0700
        create mode = 0700
        inherit acls = yes
        guest ok = no
        printable = no
        #homes目录的定义,其实这个作用已经不大了,因为建立目录的时候会通过smbldap-tool

Samba配置完后启动一下

#service smb start
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]
#显示上面的说明正常启动,第二个服务说明一下是NETBIOS服务
#smbpasswd -w 111111
#把LDAP的管理员密码加到Samba中,这个一定要做,让Samba对LDAP有权修改。

写在Samba安装之前

Samba服务器安装之前,需要修改服务器的PAM认证,让系统用户通过LDAP认证,具体内容可以参考《使用 OpenLDAP 集中管理用户帐号》这篇文章写的很细。 如果你的系统可以通过LDAP认证登陆了,请继续向下看,如果不行,不要向下进行。

Samba用户和组导入

原来的Samba用户和组采用系统帐号,现在导入起来也比较方便。 很多文章介绍用MigrationTools这个工具导入,我用的是smbldap-tools这个工具导入的用户和组。 在用smbldap-tool之前先要配置一下,下面是我的配置文件,会说明一下。

用yum安装后配置文件在下面的目录可以找到

# ls /etc/smbldap-tools/
smbldap_bind.conf  smbldap.conf
#vi smbldap_bind.conf
slaveDN="cn=root,dc=yepn,dc=com"
slavePw="111111"
masterDN="cn=root,dc=yepn,dc=com"
masterPw="111111"
#这部分要与前面你配置的LDAP服务器的管理员相同


''然后是smbldap.conf配置文件,这个文件在建立用户时比较重要''
<code>
#vi smbldap.conf
SID="S-1-5-21-1153389650-4125104348-4025214935"
#SID每台服务器特有的ID号用下面命令生成,这个一定要修改,不然Samba通过LDAP建立的用户会有问题,我开始就因为这个地方困惑了好久。
#net getlocalsid

sambaDomain="YEPN"
#改成自己的Samba域

slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
#LDAP服务器设置

ldapTLS="0"
#LDAP认证时候加密码,因为在公司内部网络使用,我又不想弄SSL所以没加密。
如果有需要的朋友可以参考《使用 OpenLDAP 集中管理用户帐号》这篇文章做一下TLS,这个地方的参数改成1

verify="require"
cafile="/etc/smbldap-tools/ca.pem"
clientcert="/etc/smbldap-tools/smbldap-tools.pem"
clientkey="/etc/smbldap-tools/smbldap-tools.key"
#以上为安装后默认设置没改动过

suffix="dc=yepn,dc=com"
#前面配置LDAP时说过,不再解释了

usersdn="ou=Users,${suffix}"
#用户的检索字段
#computersdn="ou=Computers,${suffix}"
#我不用Samba做PDC,所以去掉了这项

groupsdn="ou=Groups,${suffix}"
#用户组的检索字段

hash_encrypt="SSHA"
#Password的加密方式

#以下为建立UNIX用户时的参数

userLoginShell="/bin/false"
#我不需要用户登陆服务器

userHome="/home/%U"
#用户的home目录,Samba的homes用这个

# Default mode used for user homeDirectory
userHomeDirectoryMode="700"
#HOME目录的权限

# Gecos
userGecos="System User"

# Default User (POSIX and Samba) GID
defaultUserGid="513"
#用户属组ID是SAMBA用户

defaultMaxPasswordAge="45"
#默认值

#下面是Samba用户配置参数
userSmbHome="\\PDC-SRV\%U"
#homes目录

userProfile="\\PDC-SRV\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="yepn.net"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"
#以上除邮件域名外没有修改

smbldap-tool配置完成,fandy介绍了一种用smbldap-tools自带的configure.pl脚本创建smbldap.conf配置文件,我没用这个,感觉还是自己改的比较快。

======Smbldap-tool初始化LDAP数据库 现在用smbldap-tool初始化LDAP,很简单运行一下面的命令

#smbldap-populate

Populating LDAP directory for domain yepn (你自己服务器的SID号,这个一定要修改)
(using builtin directory structure)

adding new entry: dc=yepn,dc=net
adding new entry: ou=Users,dc=yepn,dc=net
adding new entry: ou=Groups,dc=yepn,dc=net
adding new entry: ou=Computers,dc=yepn,dc=net
adding new entry: ou=Idmap,dc=yepn,dc=net
adding new entry: uid=root,ou=Users,dc=yepn,dc=net
adding new entry: uid=nobody,ou=Users,dc=yepn,dc=net
adding new entry: cn=Domain Admins,ou=Groups,dc=yepn,dc=net
adding new entry: cn=Domain Users,ou=Groups,dc=yepn,dc=net
adding new entry: cn=Domain Guests,ou=Groups,dc=yepn,dc=net
adding new entry: cn=Domain Computers,ou=Groups,dc=yepn,dc=net
adding new entry: cn=Administrators,ou=Groups,dc=yepn,dc=net
adding new entry: cn=Account Operators,ou=Groups,dc=yepn,dc=net
adding new entry: cn=Print Operators,ou=Groups,dc=yepn,dc=net
adding new entry: cn=Backup Operators,ou=Groups,dc=yepn,dc=net
adding new entry: cn=Replicators,ou=Groups,dc=yepn,dc=net
adding new entry: sambaDomainName=yepn,dc=yepn,dc=net
Please provide a password for the domain root:
Changing password for root
New password : 111111 (root的ldap管理密码)
Retype new password : 111111 (root的ldap管理密码)
<code>
====== smbldap-tool管理帐号 ======

详细操作:
<code>
# smbldap-useradd -a -m test
(添加一个samba帐号并创建主目录)

# smbldap-groupadd -a yepn
(添加一个samba组帐号)

注:fandy的文章中没有加-a这个参数,这个参数smbldap-tool帮助中说明-a这个参数为

          
          add an automatic Security ID for the group (SID).
          The rid of the group is calculated from the gidNumber of the
          group as rid=2*gidNumber+1001. Thus the resulted SID of the
          group is $SID-$rid where $SID and $rid are the domain SID and
          the group rid

所以我感觉还是加上好,这个地方添加用户组的时候一定加-a,这个不会在改变用户属组后看不到共享文件

# smbldap-groupmod -m test yepn
(添加user2用户帐号到acc帐号中)
adding user test to group yepn

更改test帐号的密码:

# smbldap-passwd test
# smbpasswd test
# mkntpwd -N zzzzzz
<code>

以上两个密令都可以个改Samba密码,不同的是smbldap-passwd会连unix的密码一起修改。
为什么要用smbpass修改密码,或许你需要unixpassword用做别的系统的密码,
比如邮件,证书认证等。

注可以通过mkntpwd生成sambaNTPassword和sambaLMPassword密码,再将密码复制到OpenLDAP中
<code>
Changing password for test
New password : test (用户密码)
Retype new password : test (确认用户密码)

修改帐号的信息,默认是smbldap.conf中的配置

# smbldap-userinfo test

查看test帐号的信息:

# smbldap-usershow test

test帐号建立后可以测试一下,看看能不能看到共享文件

# smbclient -L localhost -U test
Password:

如果下面能正常显示共享信息,说明你的Samba服务器已经通过LDAP认证了。

下面会介绍管理LDAP和Samba的工具LAM

把原来的Samba用户和组信息导入到LDAP服务器

很多文章介绍MigrationTools这个工具导入,如果你也想用这个导入,可以GOOGLE一下,这里不做介绍。 因为MigrationTools工具导入用户时没有Samba用户的相关信息,所以我用的是smbldap-tools这个工具导入的用户和组。

先拿到原来Samba服务器上的passwd和group文件

passwd文件删除系统帐号只留下Samba帐号
#awk -F: '{print $1,$3,$4}' passwd > userlist
这样导出来的数据结构是:用户名 UID GID

group文件删除系统帐号只留下Samba组
#awk -F: '{print $1,$3,$4}' group > grouplist
这样导出来的数据结构是:组名 GID 用户列表

有了这两个文件后写一个很简单的脚本文件,通过smbldap-useradd添加用户

#more useradd.sh
#!/bin/bash

while read name uid gid
 do
  /usr/sbin/smbldap-useradd -a -u $uid -g $gid -m $name
 done < userlist

很简单,都能看明白不解释了,对于smbldap-useradd不明白的朋友可以,man smbldap-useradd看一下各个参数。

建立组用户也一样

#more groupadd.sh
#!/bin/bash

while read name gid member
 do
   /usr/sbin/smbldap-groupadd -a -g $gid $name
 done < grouplist

再来就是把用户加到指定组中,只是把上面的文件小小修改一下就可以,通过smbldap-groupmod

#more groupmember.sh
#!/bin/bash

while read name gid member
 do
   /usr/sbin/smbldap-groupmod -m "$member" $name
 done < grouplist

到上面为止用户和组都已经导入,而且设定好了用户的属组。不过Samba用户的密码还都没有设置,这个还是需要设置一下的 在设置密码时,我没找到什么好方法,所以用了expect这个命令,如果有更好的办法,希望能补充一下。

CentOS默认expect这个是没安装的,安装很简单直接yum

#yum -y install expect

先写个改密码的脚本

#more chpass.exp
#!/usr/bin/expect
spawn /usr/sbin/smbldap-passwd [lindex $argv 0]
set password [lindex $argv 1]
expect "*password:"
#sleep .1
send "$password\n"
expect "*password:"
send "$password\n"
expect eof

再用smbldap-passwd来改用户密码

#more userpasswd.sh
#!/bin/bash

while read name uid gid
 do
  /usr/bin/expect chpass.exp $name 123456
 done < userlist

#这个需要等一段时间,我用户不多只有100多个,如果你用户多的话,可以时间更长

到这里Samba用户全都迁移到LDAP认证了,以后建立用户删除都可以用smbldap-tool来完成。 因为我公司里只有我自己一个人管理这个服务器,如果我休息的时候对于非技术人员来管理LDAP服务器和Samba服务器来说用这个密码会有些麻烦,所以我还要向下写,找了两个GUI的工具来解决

LDAP Account Manager 设置

Samba管理工具Webmin,这个不用多介绍网上文章一大片,GOOGLE一下很多,也不是我介绍的重要,通过这个管理Samba服务器会很方便,不过用Webmin管理LDAP服务器的用户和组我没有设置成功,如果有调协成功的朋友,想请教一下

下面介绍LDAP Account Manager(以下简称LAM)这个GUI的管理工具,这个可以管理LDAP和Samba的用户,对我来说特别重要的是可以建立home目录,这点对于非技术人员管理LDAP和Samba服务器相当重要。当然你也可以说用Webmin建立home目录,不过那样会让非技术者相当麻烦。

相信有很多人用phpldapadmin来维护LDAP,我开始也是用这个工具来维护LDAP服务器,而且也感觉这个会比LAM来维护LDAP更简单一些,不过对于Samba来说phpldapadmin不能管理这点有些不足,所以改用LAM。

LAM的安装很简单也是PHP的GUI,如果你以前装过phpldapadmin的话那么LAM复制到apache的Document Root目录下就可以运行了。安装过程请参看LAM压缩包中的INSTALL文件。

在LAM的config需要修改一下lam.conf的配置文件,LAM也提供了GUI的修改页面,这个很方便,下面是我用的配置文件

#more lam.conf

ServerURL: ldap://localhost:389
Admins: uid=admin,ou=Users,dc=yepn,dc=com
#这个地方很重要,如果你希望用LAM来建立home目录,就需要给系统建立一个admin帐号,
所以这个地方不能设LDAP的root帐号,而且这个admin帐号必需是unix系统中存在的用户。

Passwd: {SSHA}DrIFykO6wONLf65+jmLeif8nbCA= buvDNg==
treesuffix: dc=yepn,dc=net
defaultLanguage: en_GB.utf8:UTF-8:English (Great Britain)
#这个地方的语言配置可以选中文,这点很方便

scriptPath: /usr/local/apache2/htdocs/lam/lib/lamdaemon.pl
#这个是非常关键的建立home目录用的脚本文件
# Server of external Script
scriptServer: localhost
scriptRights: 750
cachetimeout: 5

# Module settings

modules: posixAccount_minUID: 1000
modules: posixAccount_maxUID: 3000
modules: posixAccount_minMachine: 5000
modules: posixAccount_maxMachine: 6000
modules: posixGroup_minGID: 1000
modules: posixGroup_maxGID: 2000
modules: posixGroup_pwdHash: SSHA
modules: posixAccount_pwdHash: SSHA

activeTypes: user,group

types: suffix_user: ou=Users,dc=yepn,dc=net
types: attr_user: #uid;#givenName;#sn;#uidNumber;#gidNumber
types: modules_user: inetOrgPerson,posixAccount,sambaSamAccount

types: suffix_group: ou=Groups,dc=yepn,dc=net
types: attr_group: #cn;#gidNumber;#memberUID;#description
types: modules_group: posixGroup,sambaGroupMapping

#types: suffix_smbDomain: ou=domains,dc=yepn,dc=net
#types: attr_smbDomain: sambaDomainName:Domain name;sambaSID:Domain SID
#types: modules_smbDomain: sambaDomain

# Access level for this profile.
accessLevel: 100
modules: sambaSamAccount_timeZone: 9
types: suffix_host:
types: attr_host: #cn;#description;#uidNumber;#gidNumber
types: suffix_smbDomain:
types: attr_smbDomain: #sambaDomainName;#sambaSID

改成你自己用LDAP域就OK了

现在登陆LAM就可以管理LDAP和Samba用户,但是还不能建立home目录

lamdaemon.pl安装

这个小脚本折腾了我两天,记我非常的郁闷。 前面刚说过运行lamdaemon脚本需要一个真实的系统用户,我建立了一个admin用户,但是需要让admin远程登陆之后能够执行lamdaemon这个脚本。

sudoers修改

sudo这个命令来执行lamdaemon这个脚本,所以需要修改sudoers这个配置文件

#vi /etc/sudoers
admin All= NOPASSWD: /usr/local/apache2/htdocs/lam/lib/lamdaemon.pl

对于sudoers的说明请GOOGLE,简单说一下,就是让admin用户可以不要密码,通过sudo运行 /usr/local/apache2/htdocs/lam/lib/lamdaemon.pl

Perl支持Quota

这个比较简单去http://cpan.org/上搜索一下,装上就OK了

PHP支持libssh2

libssh2可以到http://www.libssh2.org下载libssh2 0.13 一定要这个版本,最少在我前面写的那个系统环境下,这个版本我测试通过了,最新的0.18让我非常郁闷,怎么都是不成,PHP是可以支持ssh2,但是lamdaemon这个脚本就是不行。

libssh2安装之后去php的主页上下载php5-ssh2 0.10这个版本,让PHP支持ssh2,这两个版本我测试过没问题,其他版本我都没有成功。对于php3-ssh2 0.10的安装说明一下,通过phpize安装。

#tar -zxvf ssh2-0.10.tgz
#cd ssh2-0.10
#phpize && ./configure --with-ssh2 && make
#cp modules/ssh2.so /usr/local/lib
#我的PHP指定库在这个目录下,你不一定在这个目录,要看你的php.ini文件中的PATH
#echo extension=ssh2.so >> /usr/local/lib/php.ini
#把ssh2.so添加到你的php.ini文件中

最好再修改一下SSH的配置文件

#vi /etc/ssh/sshd_config
PasswordAuthentication yes
#原来是被注释掉的

到这里LAM的lamdaemon.pl的配置脚本也设置完了,如果上面这些配置你都没有报名信息出现的话,下面可以测试一下你的脚本安装是否成功。GOOD LUCK!!! 登陆到LAM里左上角有TOOLs→TEST→Lamdaemon test

如果一共都OK,那说明你的Lamdaemon安装正常了,如果只是最后一项Lamdaemon: read quotas报错的话,你的LAM也可以正正常建立home目录。

最后的分划线

到这里Samba和LDAP的管理工具都配置完成了,如果有其他的朋友有更好的方法介绍,希望来信告诉我或是加我的MSN一起讨论,现在只是把Samba和LDAP整合了,离我要完成的目标,还有些差距,前天openpne的认证也可以通过LDAP了,但是用户迁移是个问题。或许再等等PNE会有更成熟的版本推出。

下面两个工作是以后要做的,如果有作过经验的朋友希望和我联系一下,有问题请教 1.Qmail用户迁移到Postfix+LDAP中 2.Net'Attest EPS认证服务器用户整合到LDAP中

注:以后会慢慢整理和完善这份文档

/var/lib/openshift/bccd8eac1968476490eaee9ced33c7bf/app-root/runtime/repo/php/data/pages/lam.txt · 最后更改: 2012/09/07 09:21 (外部编辑)
到顶部
CC Attribution-Noncommercial-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0