Fedora autenticando no LDAP.
Publicado por Alessandro Dias 04/04/2007
[ Hits: 10.350 ]
Script para configuração de clientes de autenticação LDAP no domínio chamado TESTE.
#!/bin/bash
# --------------- permissões do /home
chmod 755 /home
echo -e "Verifica se o pacote \"openldap-clients\" está instalado...\n"
PACOTE=`rpm -qa |grep openldap-clients`
if [ "$PACOTE" == "" ]; then
echo -e "Pacote \"openldap-clients\" não instalado! Aguarde instalação...\n"
yum install dialog
fi
VER=`grep "ldap.ditec" /etc/openldap/ldap.conf`
if [ "$VER" == "" ]; then
echo "HOST ldap.ditec.dpf.gov.br" >> /etc/openldap/ldap.conf
echo "BASE o=dpf" >> /etc/openldap/ldap.conf
echo "TLS_CACERT /etc/pki/tls/certs/ca.crt" >> /etc/openldap/ldap.conf
fi
echo -e "Verifica se o pacote Dialog está instalado...\n"
PACOTE=`rpm -qa |grep dialog-1`
if [ "$PACOTE" == "" ]; then
echo -e "Pacote Dialog não instalado! Aguarde instalação...\n"
yum install dialog
fi
if [ -f /etc/pki/tls/certs/ca.crt ]; then
echo -e "\nCertificado Ok!"
echo $porcento
else
echo -e "\nFazendo download do certificado Ok!"
wget http://ditec.dpf.gov.br/download/servicos/software_livre/ca.crt
mv -f ca.crt /etc/pki/tls/certs/ca.crt
fi
# -------------------Retira as máquinas
i=1
usuario="teste"
TESTE=`ldapsearch -x -Z "(uid=*)" uid |grep uid: | cut -d " " -f 2`
nova_lista=""
echo -e "\nAguarde enquanto o sistema verifica os usuários...\n"
while [ "$usuario" != "" ]; do
usuario=`echo $TESTE | cut -d " " -f $i`
tam=`expr ${#usuario} \- 1`
if [ "${usuario:$tam:1}" != "$" ];then
nova_lista=`echo $nova_lista``echo " $usuario"`
fi
i=`expr $i \+ 1`
done
#-----Montando lista de usuários para o Dialog
usuario="teste"
echo -e "\nAguarde enquanto o sistema monta o Dialog...\n"
i=1
while [ "$usuario" != "" ]; do
usuario=`echo $nova_lista | cut -d " " -f $i`
VER=`ls /home/ | grep "$usuario"`
if [ "$VER" != "" ]; then
USUARIOS[$i]=`echo $usuario``echo -e " \"\" ON"`
else
USUARIOS[$i]=`echo $usuario``echo -e " \"\" OFF"`
fi
i=`expr $i \+ 1`
done
num_users=`expr $i \- 2`
escolha=$( dialog --stdout \
--checklist 'Selecione os usuários que utilizarão a sua máquina:' 0 0 0 \
`for ((a=1 ; a<$num_users ; a++));do echo ${USUARIOS[$a]};done` \
`echo ${USUARIOS[$num_users]}` )
CANCELA=$?
# Apenda a palavra "fim"
usuarios=`echo $escolha``echo " fim"`
# Inicializa variáveis
user_del="teste"
i=1
# ---------------------------------------------- Excluindo Usuários
# Apenda a palavra "fim"
lista=`ls /home/`
lista=`echo $lista``echo " fim"`
apagados=""
incluidos=""
mantidos=""
if [ "$CANCELA" != "1" ];then
while [ "$user_del" != "fim" ]; do
user_del=`echo ${lista} | cut -d " " -f $i`
apagar=`echo ${escolha} | grep $user_del`
YES=0
if [ "$apagar" == "" -a "$user_del" != "fim" ];then
dialog --yesno "Vc realmente quer excluir o usuário $user_del?" 0 0 && YES=1
if [ "$YES" == "1" ];then
rm -rf /home/$user_del/
apagados=`echo $apagados``echo " $user_del"`
else
mantidos=`echo $mantidos``echo " $user_del"`
fi
fi
i=`expr $i \+ 1`
done
fi
# Inicializa variáveis
USERNAME="teste"
i=1
aplic=0
# ----------------------------------------------- Incluindo Usuários
while [ "$USERNAME" != "fim" ]; do
USERNAME=`echo ${usuarios} | cut -d " " -f $i`
if [ "$USERNAME" != "fim" ]; then
len_username=${#USERNAME}
len_username=`expr $len_username \- 2`
USERNAME=${USERNAME:1:$len_username}
if [ -e /home/$USERNAME ];then
#echo -e "/home/$USERNAME Ok!\n"
mantidos=`echo $mantidos``echo " $USERNAME"`
else
incluidos=`echo $incluidos``echo " $USERNAME"`
mkdir /home/$USERNAME
if [ -f /etc/skel/.bash_logout ]; then
cp -R /etc/skel/.bash_logout /home/$USERNAME/
fi
if [ -f /etc/skel/.bash_profile ]; then
cp -R /etc/skel/.bash_profile /home/$USERNAME/
fi
if [ -f /etc/skel/.bashrc ]; then
cp -R /etc/skel/.bashrc /home/$USERNAME/
fi
if [ -f /etc/skel/.gtkrc ]; then
cp -R /etc/skel/.gtkrc /home/$USERNAME/
fi
chown -R $USERNAME:usuarios /home/$USERNAME
chmod -R go-rwx /home/$USERNAME
#echo -e "/home/$USERNAME criado!\n"
fi
aplic=1
fi
i=`expr $i \+ 1`
done
if [ "$aplic" == "1" ]; then
todos=`echo $mantidos``echo " $incluidos"`
anteriores=`echo $mantidos``echo " $apagados"`
#echo -e "Configurando o cliente LDAP...\n"
authconfig --enableldap --enableldapauth --enableldaptls --ldapserver ldap.ditec.dpf.gov.br --ldapbasedn o=dpf --kickstart
dialog --title "Histórico de atividades" \
--msgbox "\nUsuário do sistema antes das atualizações:\n$anteriores\n\nUsuários incluídos:\n$incluidos\n\nUsuários excluídos:\n$apagados\n\nUsuários do sistema após atualizações:\n$todos" \
20 50
fi
exit 0
Script Firewall - Regras do Iptables
Barra de Progresso com Shell Script
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)
Vou destruir sua infância:) (7)
Interface gráfica com problema (0)









