smbldap-groupCopy copiar grupos de user1 para user2

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

[ Hits: 4.165 ]

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

Acelerar leitura e escrita no hd

Fibonacci em bash shell

Operações com valores em arquivo texto

Testar se variável é numérica

script bobo mas de mutia utilidade


  

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