smbldap-groupCopy copiar grupos de user1 para user2

Publicado por Wesley Henrique Leite (última atualização em 27/03/2012)

[ Hits: 4.041 ]

Download smbldap-groupCopy




Sua função é copiar todos os grupos de um usuário para outro, utilizando os recursos do pacote de ferramentas smbldap-tools.

Modo de Usar:

   # smbldap-groupCopy wleite jalmeida
  
Copiará todos os grupos do user wleite para o user jalmeida  retirando apenas o grupo "Domain Users" da lista, se segue o padrão verá que este grupo é comum a todos os users criados.

  



Esconder código-fonte

#/bin/bash
# 
# autor: Wesley Henrique Leite
# : wesleyhenrique [ - ] gmail [ ' ] com
# 

GRUPOCOPI=$(which smbldap-groupmod)
USERLIST=$(which smbldap-userlist)


#
# O SCRIPT NECESSITA DE PELOMENOS 2 PARAMETROS
# ESTE IF CHECA EXATAMENTE ISSO, SE NAO FOR 
# IGUAL A 2 IMPRIMIR MODO DE USAR E SAI.
#
if [ $# -ne 2 ]
then
        printf "Modo de usar\n $0 <DE> <PARA>\n\n    EX::: \n    $0 wleite  jalmeida \n "
        exit
fi

if [ -z "$GRUPOCOPI"  ] || [ -z "$USERLIST"  ]
then
        exit
fi

#
# O SINAL DE "!" SERVER PARA NEGAR UMA CONDICAO, O -z CHECAR SE O RETORNO DO COMANDO 
# SERÁ VAZIO, JUNTANDO TUDO, SE NAO FOR VAZIO O RETORNO DO COMANDO 1 E (&&) SE NAO FOR VAZIO
# O RETORNO DO COMANDO 2 , AMBOS OS USUÁRIOS ESTÃO NA BASE
#


if [ ! -z "$( $USERLIST | awk '{print $3}' | grep "^$2$" )"  ] && [ ! -z "$( $USERLIST | awk '{print $3}' | grep "^$1$" )" ]
then

# O NOME DOS USUÁRIOS DEVEM SER DIGITADOS EXATAMENTE COMO ESTÃO NA BASE O grep IRÁ CHECAR 
# A ENTRADA QUE INICIE E TERMINE COMO OS DADOS DIGITADOS.

#
# O FOR EH BEM SIMPLES, ARMAZENA NA VARIAVEL Grupo A LISTAGEM DE GRUPOS DO USUARIO 
# INFORMADO NO PRIMEIRO PARAMETRO "$1", O cut LIMPA A STRING DEIXANDO SOMENTE O 
# NOME DOS GRUPOS O grep ELIMINA O GRUPO "Domain Users", POIS, ESTE É COMUM A TODOS 
# OS USUÁRIOS DA BASE DO LDAP, POR FIM ADICIONA GRUPO A GRUPO AO USUÁRIO PASSADO 
# NO SEGUNDO PARAMETRO "$2".
#
        for Grupo in $( getent group | grep $1 | cut -d: -f1 | grep -v "Domain Users" )
        do
#
# getent EH UM PROGRAMA SIMPLES QUE CAPTURA AS ENTRADAS NA BASE ADIMINISTRATIVA DO SISTEMA
# MINHA LISTA DO LDAP SURGE GRACAS AO /etc/nsswitch.conf QUE SERVER PARA ORDERNAR 
# AS CONSULTAS NA BASE, E NELE TENHO O LDAP.
# passwd: files ldap
# group:  files ldap
# EXISTEM DIVERSAS OUTRAS, UTILIZE O MAN PAGE PARA CHECAR.
#
                $GRUPOCOPI -m $2 $Grupo
        done
else
 #
 # IMPRIMIR USUARIO's NAO ECONTRADO's
 # 

               if [ -z "$($USERLIST | grep $1 )" ]  
               then
                            echo "[ NAO ENCONTRADO ] -> $1 "
               elif [ -z "$($USERLIST | grep $2 )" ]  
               then
                            echo "[ NAO ENCONTRADO ] -> $2 "
               fi

fi

Scripts recomendados

Base64 encode e decode

Programando em shell script

Capturando tela em modo gráfico (Melhorado)

Atualização E-trust 7

Unrar


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts