ldap clientの一括設定処理
5.5
bash
CENTOS
centos
LDAP
ldap.conf
Linux
OpenLdap
pam_mkhomedir.so./home
system-auth
ディレクトリ生成
自動設定
動作完全未保障なんですが・・・・ldap clientの自動設定 shell を作ってみました、このシェルは、かなーり昔に投稿した、「OpenLDAPでアカウントを一元管理!~サーバの構築~クライアントの設定手順」をベースに(きっと)作成されております。当方の環境では無事に動きました、
shellは以下の通りとなります。
#!/bin/bash echo "#**********************************************************" echo "# ServerのLdapClientの設定を自動で行う" echo "# ldap serverがあることが、ldapclientがインストールされていること" echo "# ldap serverは以下のサイトでの構築を前提に作成しております" echo "# http://www.s-quad.com/wordpress/?p=11" echo "#**********************************************************" # 共通変数 # 日付ファイル _wdate=`date +"%Y%m%d%H%M%S"` # 各種コンフィグファイルのバックアップ用のディレクトリを指定 _backupdir=/backups/${HOSTNAME} # ワーク用のディレクトリを指定(このディレクトリ配下に作成されたファイルは、削除されます _workdir=/tmp # ldap serverのip address を指定 _ldapserver=192.168.101.40 # ldap配下におかないユーザーをカンマ区切りで指定する _nss_initgroups_ignoreusers="root,ldap,named,avahi,haldaemon,mysql,postgres,db2inst1,httpd" # baseDNの設定 _basedn_dc1=mydc _basedn_dc2=com # root権限になれるグループ配列を生成 _sudogroup=() # sudo -i でroot権限になれるグループを指定(複数登録可能) _sudogroup=("${_sudogroup[@]}" "mydcadmingroup") # sudo -i でroot権限になれるユーザー配列を生成 _sudousers=() # sudo -i でroot権限になれるユーザーを指定(複数登録可能) _sudousers=("${_sudousers[@]}" "panda") # bindDNの設定 _binddn_cn=proxy _binddn_dc1=mydc _binddn_dc2=com _bindpw=password # 初期処理 if [ ! -d $_backupdir ]; then echo "create directory $_backupdir" mkdir -p $_backupdir fi if [ ! -d $_workdir ]; then echo "create directory $_workdir" mkdir -p $_workdir fi echo " *** ldap client setting start *** " # ldap clientの設定を行う authconfig --enableldap --enableldapauth --ldapserver=${_ldapserver} \ --ldapbasedn="dc=${_basedn_dc1},dc=${_basedn_dc2}" --update cat << LDPFILE > ${_workdir}/ldap.conf base dc=${_basedn_dc1},dc=${_basedn_dc2} binddn cn=${_binddn_cn},dc=${_binddn_dc1},dc=${_binddn_dc2} bindpw ${_bindpw} timelimit 120 bind_timelimit 120 idle_timelimit 3600 nss_initgroups_ignoreusers ${_nss_initgroups_ignoreusers} uri ldap://${_ldapserver} ldap://192.168.101.66 ssl no tls_cacertdir /etc/openldap/cacerts pam_password md5 bind_policy soft LDPFILE sleep 2 chmod 777 /etc/ldap.conf echo "mv -f /etc/ldap.conf ${_backupdir}/ldap.conf.${HOSTNAME}.${_wdate}" mv -f /etc/ldap.conf ${_backupdir}/ldap.conf.${HOSTNAME}.${_wdate} echo "cat ${_workdir}/ldap.conf > /etc/ldap.conf" sleep 2 cat ${_workdir}/ldap.conf > /etc/ldap.conf rm -f ${_workdir}/ldap.conf echo "> system-auth 設定 start" # ログイン時に自動的にディレクトリを作成するような設定を追記する cnt=`cat /etc/pam.d/system-auth | grep -i pam_mkhomedir.so | wc -l` if [ "$cnt" = "0" ]; then echo "--> ADD session optional pam_mkhomedir.so skel=/etc/skel umask=022 " echo "session optional pam_mkhomedir.so skel=/etc/skel umask=022" >> /etc/pam.d/system-auth else echo "--> 既に設定済みのため処理をスキップします" fi echo "> system-auth 設定 end" # sudoの設定 chmod 775 /etc/sudoers echo "> sudo user 設定 start" for (( I = 0; I < ${#_sudousers[@]}; ++I )) do cnt=`cat /etc/sudoers | grep -i ${_sudousers[$I]} | wc -l` if [ "$cnt" = "0" ]; then echo "--> ADD ${_sudousers[$I]} ALL=(ALL) ALL" echo "${_sudousers[$I]} ALL=(ALL) ALL" >> /etc/sudoers else echo "--> ${_sudousers[$I]}:既に設定済みのため処理をスキップします" fi done echo "> sudo user 設定 end" echo " " echo "> sudo group 設定 start" for (( I = 0; I < ${#_sudogroup[@]}; ++I )) do cnt=`cat /etc/sudoers | grep -i ${_sudogroup[$I]} | wc -l` if [ "$cnt" = "0" ]; then echo "--> ADD %${_sudogroup[$I]} ALL=(ALL) ALL" echo "%${_sudogroup[$I]} ALL=(ALL) ALL" >> /etc/sudoers else echo "--> ${_sudogroup[$I]}:既に設定済みのため処理をスキップします" fi done echo "> sudo group 設定 end" chmod 440 /etc/sudoers echo " *** ldap client setting complate *** " exit 0
こんな感じです。色々と中途半端の部分が多いですね、皆様の環境に合わせて修正いただければ、きっと動くと思います。