首页 » 网站建设 » php增长用户账号技巧_0386一键添加OpenLDAP用户及Kerberos账号

php增长用户账号技巧_0386一键添加OpenLDAP用户及Kerberos账号

访客 2024-12-16 0

扫一扫用手机浏览

文章目录 [+]

Fayson的github:

https://github.com/fayson/cdhproject

php增长用户账号技巧_0386一键添加OpenLDAP用户及Kerberos账号

提示:代码块部分可以旁边滑动查看噢

php增长用户账号技巧_0386一键添加OpenLDAP用户及Kerberos账号
(图片来自网络侵删)

1.文档编写目的

在CDH集群中启用了Kerberos并集成OpenLDAP之后,在添加OpenLDAP用户时比较繁芜且随意马虎忘却为添加的用户天生Kerberos账号,在添加OpenLDAP用户可以通过phpldapadmin工具操作参考Fayson前面的文章《

12.OpenLDAP管理工具Phpldapadmin的安装及利用

》,本篇文章Fayson分享一个自己写的Shell脚本进行添加OpenLDAP用户、天生Kerberos账号及导出keytab文件。

本次Fayson的测试环境为

1.Redhat7.3

2.OPenLDAP2.4.44

2.脚本解释

Fayson的shell脚本实现办法:

通过输入要添加用户的基本信息天生ldif文件基于OpenLDAP客户端供应的ldapadd、ldapsearch等命令实现添加用户。
基于Kerberos的kadmin添加账号及导出keytab文件

如下是脚本的详细实现及利用:

1.config-env.sh紧张配置OpenLDAP及Kerberos信息和公共的方法

[root@cdh01 openldap-shell]# vim config-env.sh#!/bin/bashmkdir -p ldifmkdir -p keytab#OpenLDAP信息ldap_url=\"大众ldap://cdh01.fayson.com\公众user_base=\"大众ou=People,dc=fayson,dc=com\"大众group_base=\"大众ou=Group,dc=fayson,dc=com\公众super_admin=\"大众cn=Manager,dc=fayson,dc=com\公众super_password=\公众123456\"大众#kerberos信息domain=\"大众FAYSON.COM\"大众#输出非常日志方法function show_errmsg() { echo -e \"大众\033[40;31m[ERROR] $1 \033[0m\"大众}#输出高亮日志方法function show_highlight() { echo -e \"大众\033[40;34m $1 \033[0m\"大众 exit}#查找OpenLDAP用户是否已存在exists_user(){ result=`ldapsearch -H $ldap_url -b \"大众uid=${1},${user_base}\"大众 -D \"大众$super_admin\公众 -w $super_password | grep result: |awk -F \"大众 \公众 '{print $2}'` return $result}

(可旁边滑动)

2.addopenldap.sh脚本紧张实现添加OpenLDAP用户及天生Kerberos账号

[root@cdh01 openldap-shell]# vim addopenldap.sh #!/bin/bash#利用脚本添加OpenLDAP用户source ./config-env.shwhile : ; do echo -n \公众Enter your OpenLDAP name: \"大众 read name if [ \公众$name\公众 = \"大众\"大众 ]; then show_errmsg \"大众Please enter your name\"大众 else exists_user $name if [ $? -ne 0 ];then break else show_errmsg \"大众User $name already exists\公众 fi fidonewhile : ;do echo -n \"大众Enter the uid for user: \"大众 read uid expr $uid + 10 1>/dev/null 2>&1 if [ $? -ne 0 ];then show_errmsg \"大众uid must be number, $uid\"大众 else break fidoneecho -n \"大众Enter the password for user $name: \公众while : ;do char=` stty cbreak -echo dd if=/dev/tty bs=1 count=1 2>/dev/null stty -cbreak echo ` if [ \"大众$char\"大众 = \"大众\"大众 ];then echo #这里的echo只是为换行 break fi password=\"大众$password$char\"大众 echo -n \"大众\"大众doneecho -n \公众Enter the password of user $name again:\"大众while : ;do char=` stty cbreak -echo dd if=/dev/tty bs=1 count=1 2>/dev/null stty -cbreak echo ` if [ \"大众$char\"大众 = \公众\公众 ];then echo #这里的echo只是为换行 break fi repassword=\"大众$repassword$char\公众 echo -n \公众\"大众doneif [ \公众$password\"大众 != \公众$repassword\"大众 ];then show_errmsg \"大众Sorry, passwords do not match.\"大众 exitfiecho \"大众username:$name\"大众echo \"大众userid:$uid\"大众echo \"大众password:$password\"大众#天生ldif文件,包含用户和用户组# Create User Ldif Fileecho \公众dn: uid=$name,$user_baseuid: $namecn: $nameobjectClass: accountobjectClass: posixAccountobjectClass: topobjectClass: shadowAccountuserPassword: $passwordloginShell: /bin/bashuidNumber: $uidgidNumber: $uidhomeDirectory: /home/$namedn: cn=$name,$group_baseobjectClass: posixGroupobjectClass: topcn: $nameuserPassword: $passwordgidNumber: $uid\"大众 > ldif/${name}.ldif#添加用户和用户组到OpenLDAP中ldapadd -x -D \公众$super_admin\公众 -w $super_password -f ldif/${name}.ldifif [ $? -ne 0 ];then show_errmsg \公众Add openldap user failed...\公众else #是否为用户天生Kerberos账号 echo -n \公众Are you sure if you are generating kerberos?(Y/N): \公众 read iskerberos if [ \"大众$iskerberos\公众 = \"大众Y\公众 ];then #添加kerberos账号 kadmin.local -q \"大众addprinc -pw $password ${name}@${domain}\公众 if [ $? -ne 0 ];then show_errmsg \"大众Sorry,Failed to generate kerberos account.\"大众 fi #是否为用户天生keytab文件 echo -n \"大众Are you sure if you are generating keytab for ${name}@${domain} ?(Y/N): \"大众 read iskeytab if [ \"大众$iskeytab\公众 = \"大众Y\"大众 ];then kadmin.local -q \"大众xst -norandkey -k ./keytab/${name}.keytab ${name}@${domain}\公众 if [ $? -ne 0 ];then show_errmsg \"大众Sorry,Failed to generate keytab.\公众 fi fi fifi

(可旁边滑动)

3.start_openldap.sh主脚本

[root@cdh01 openldap-shell]# vim start_ldap.sh#!/bin/bash########################################################## author: Fayson ## version: V1.0 ## createTime: 2018-09-02 ## OpenLDAP 大略操作: ## 1.新增OpenLDAP用户并创建Kerberos账号及天生keytab文件 ## 2.删除OpenLDAP用户 ## 3.删除OpenLDAP用户组 ## 4.修正用户密码 ##########################################################source ./config-env.shuseage(){ echo \"大众Command action 1 delete a openldap user 2 delete a openldap group 3 modify the openldap user password 4 add a openldap user q quit\"大众}echo_help(){ echo -n \"大众Enter your OpenLDAP $1: \公众 read content}delete_user(){ echo \公众---------Delete [`show_highlight ${content}`] user\"大众 ldapdelete -x -D \公众$super_admin\"大众 -w $super_password \"大众uid=${content},${user_base}\公众 if [ $? -eq 0 ];then echo \公众---------Successfully deleted the [`show_highlight ${content}`] user\公众 fi}delete_group(){ echo \公众---------delete [`show_highlight ${content}`] group\"大众 ldapdelete -x -D \公众$super_admin\"大众 -w $super_password \"大众cn=${content},${group_base}\"大众 if [ $? -eq 0 ];then echo \"大众---------Successfully deleted the [`show_highlight ${content}`] group\"大众 fi}modify_user(){ echo \"大众---------Modify the peach [`show_highlight ${content}`] password\公众 ldappasswd -x -D \公众$super_admin\"大众 -w $super_password \公众uid=${content},${user_base}\公众 -S if [ $? -eq 0 ];then echo \"大众---------Successfully modified the [`show_highlight ${content}`] user password\公众 fi}add_user(){ source ./addopenldap.sh}while truedo echo -n \"大众Command (m for help): \"大众 read operator case $operator in m) useage ;; 1) echo_help \"大众UserName\"大众 delete_user ;; 2) echo_help \公众GroupName\"大众 delete_group ;; 3) echo_help \"大众UserName\公众 modify_user ;; 4) add_user ;; q) exit ;; ) echo \"大众\公众 esacdone

(可旁边滑动)

4.ldif和keytab目录紧张用于存放天生的ldif文件和keytab文件

3.脚本利用

1.在命令行实行如下命令,运行脚本

[root@cdh01 openldap-shell]# sh start_ldap.sh

(可旁边滑动)

输入“m”,返回操作命令提示。

2.创建一个faysontest用户并天生keytab文件

命令行查看faysontest用户是否创建成功

[root@cdh01 openldap-shell]# id faysontest[root@cdh01 openldap-shell]# kinit -kt keytab/faysontest.keytab faysontest[root@cdh01 openldap-shell]# klist

(可旁边滑动)

4.总结

1.上述脚本添加用户依赖OPenLDAP的客户端,因此该脚本必须运行在支配OPenLDAP客户真个节点上。

2.创建Kerberos账号及导出keytab文件,利用kadmin命令则该脚本必须运行在kadmin做事所在节点上。

3.须要利用root或sudo权限用户实行

GitHub地址:

https://github.com/fayson/cdhproject/tree/master/openldap-shell

提示:代码块部分可以旁边滑动查看噢

为天地立心,为平生易近立命,为往圣继绝学,为万世开太平。

温馨提示:如果利用电脑查看图片不清晰,可以利用手机打开文章单击文中的图片放大查看高清原图。

推举关注Hadoop实操,第一韶光,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信"大众号Hadoop实操

标签:

相关文章

php7012nts技巧_Composer依靠治理

举个例子,平时我们开始的时候如果不是用框架,想要一个验证码,就要先去Gihutb或者其他地方找一个验证码类,然后在项目中inclu...

网站建设 2024-12-17 阅读0 评论0