Fedora autenticando no LDAP.
Publicado por Alessandro Dias 04/04/2007
[ Hits: 10.334 ]
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
passa2 - Um sistema de backup/sincronização/cópia de arquivos em SHell Script
Extrair o áudio de arquivos de vídeo
Monitorando espaço em disco com IP dinâmico.
librePods: liberte seus AirPods em 2026
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Instalando e definindo as novas fontes Adwaita no GNOME
Configurar aviso da temperatura da CPU no Conky
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Conky não mostra temperaturas da CPU no notebook (15)
Após todos esses anos... youtube! (2)
archlinux resolução abaixou após atualização [RESOLVIDO] (19)
Registro do 'last&qu... errado [RESOLVIDO] (9)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (2)









