openldap默认情况下无法在phpldapadmin中设置用户的sudo权限,但可以通过以下设置,来实现


LDAP SERVER端:

安装openssh-ldap

yum -y install openssh-ldap


拷贝schema文件

cp /usr/share/doc/sudo-1.8.6p3/schema.OpenLDAP /etc/openldap/schema/sudo.schema
cp /usr/share/doc/openssh-ldap-5.3p1/openssh-lpk-openldap.schema  /etc/openldap/schema/


修改/etc/openldap/slapd.conf文件,追加下面两行

include         /etc/openldap/schema/sudo.schema
include         /etc/openldap/schema/openssh-lpk-openldap.schema


保存配置重启服务

slaptest -f slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
chown -Rf ldap:ldap /etc/openldap/slapd.d
service slapd restart


安装phpldapadmin,过程省略,请参考之前的文档

phpldapadmin默认不支持sudo设定,需要将下面链接中的两个模板文件保存为下面的路径

http://phpldapadmin.sourceforge.net/wiki/index.php/TemplatesContributed:Sudo

/usr/share/phpldapadmin/templates/creation/sudo.xml
/usr/share/phpldapadmin/templates/modification/sudo.xml

然后phpldapadmin会自动载入,但是phpldapadmin中必须创建一个名为sudoers的OU。后面会提到



客户端配置:

编辑/etc/sudo-ldap.conf文件。追加以下两行:

uri ldap://172.16.42.137   //LDAP SERVER的IP地址
sudoers_base ou=sudoers,dc=beyondh,dc=org


编辑/etc/nsswitch.conf文件,追加下面一行内容

sudoers:    files   ldap



PHPLDAPADMIN web上的配置

1、创建一个名为users的OU,并在该OU下创建一个用户bbb

wKioL1jY72KhBVRCAACFEuXF9a4649.png

wKiom1jY72Lws4pRAAE4ZfjZKFU460.png


2、创建一个名为SUDOers(没有测试过叫sudoers行不行)的OU,并创建一个sudo policy

wKioL1jY7kzTYks4AAEh8g-N4Dk853.png

wKioL1jY7k2SP9ZxAAKuEM9p8PI571.png


3、创建sudo 规则,并将bbb用户加入suo users中

wKiom1jY7sDS_6spAADdPh93Srg518.png


4、验证

# ssh  bbb@172.16.42.135
ssh bbb@172.16.42.135
bbb@172.16.42.135's password: 
Last login: Mon Mar 27 18:24:47 2017 from 172.16.42.137
Could not chdir to home directory /home/bbb: No such file or directory
27 Mar 18:56:04 ntpdate[1998]: Can't adjust the time of day: Operation not permitted
-sh-4.1$ sudo su -
[sudo] password for bbb: 
27 Mar 18:56:22 ntpdate[2016]: 69.89.207.99 rate limit response from server.
27 Mar 18:56:26 ntpdate[2016]: adjust time server 69.89.207.99 offset 0.038788 sec