Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por em 07/10/2005    [ 2601 hits ]

Login: darkknight, 2750 pontos

   


Descrição

Esse script faz a inclusão ou exclusão de usuários, dando ou retirando deles direitos de escrita ou leitura nos repositórios controlados pelo CVS ( Concurrent Versioning System).
Esse é um dos meus primeiros passos em Shell Script, então, dúvidas, sugestões ou bugs serão bem aceitos se reportados.

[ Download: cvs_adm.sh ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/bin/bash

help_usage()
{

cat <<EOF

Esse script adiciona/remove acesso de usuarios no CVS, tanto
para escrita como para leitura.

Use-o com a seguinte sintaxe:

$0 <comando> [argumentos - sao usados 2 argumentos]

Onde:

<comandos>    =   +r   -> da direito de leitura ao usuario
             desejado.
        
              -r   -> retira o direito de leitura do
                  usuario desejado.
        
          +w   -> da direito de escrita ao usuario
             desejado.
        
              -w   -> retira o direito de escrita do
                  usuario desejado.
        
        
              help -> exibe esse HELP.

[argumento1 - usuario] =   Login do usuario a ser adicionado/removido

[argumento2 - path] =      Path do repositorio.
            DETALHE: Nunca coloque uma barra no final
            do path do repositorio, pois isso causara
            erro na execucao do script.
            
autor: Bruno Bueno - brunoramosbueno[NO SPAM]gmail.com
          
EOF

}

add_to_readers()
{
    if [ "$1" = "" ] || [ "$2" = "" ];
    then
   echo "Faltam argumentos"
   exit
    fi
    
    if [ ! -d $2 ];
    then
   echo "Repositorio invalido ($2)"
   exit
    fi
    
    user=`cat $2/CVSROOT/passwd | grep $1 | cut -f1 -d:`
    if [ "$user" = "" ];
    then
   echo "Usuario nao existe no sistema, consulte /etc/passwd"    
   exit
    fi

    user=`cat $2/CVSROOT/readers | grep $1`
    if [ ! "$user" = "" ];
    then
   echo "Usuario ja esta no arquivo de readers"    
   exit
    fi
    
    echo "Dando direito de leitura para o usuario $1 ao repositorio $2"
    echo "$1" >> $2/CVSROOT/readers
}

del_from_readers()
{
    if [ "$1" = "" ] || [ "$2" = "" ];
    then
   echo "Faltam argumentos"
   exit
    fi
    
    if [ ! -d $2 ];
    then
   echo "Repositorio invalido ($2)"
   exit
    fi
    
    user=`cat $2/CVSROOT/passwd | grep $1 | cut -f1 -d:`
    if [ "$user" = "" ];
    then
   echo "Usuario nao existe no sistema, consulte /etc/passwd"    
   exit
    fi

    user=`cat $2/CVSROOT/readers | grep $1`
    if [ "$user" = "" ];
    then
   echo "Usuario nao existe no arquivo de readers"    
   exit
    fi
    
    echo "Removendo direitos de leitura do usuario $1 no repositorio $2"
    cat $2/CVSROOT/readers | grep -v ^$1 > $2/CVSROOT/readers
}

add_to_writers()
{
    if [ "$1" = "" ] || [ "$2" = "" ];
    then
   echo "Faltam argumentos"
   exit
    fi
    
    if [ ! -d $2 ];
    then
   echo "Repositorio invalido ($2)"
   exit
    fi
    
    user=`cat /etc/passwd | grep $1 | cut -f1 -d:`
    if [ "$user" = "" ];
    then
   echo "Usuario nao existe no sistema, consulte /etc/passwd"    
   exit
    fi

    user=`cat $2/CVSROOT/writers | grep $1`
    if [ ! "$user" = "" ];
    then
   echo "Usuario ja esta no arquivo de writers"    
   exit
    fi
    
    user=`cat $2/CVSROOT/readers | grep $1`
    if [ ! "$user" = "" ];
    then
        echo "Usuario faz parte do grupo de readers. Retirando-o dos readers"
   cat $2/CVSROOT/readers | grep -v ^$1 > $2/CVSROOT/readers
   echo "Adicionando usuario $1 ao arquivo de writers do repositorio $2"
   echo "$1" >> $2/CVSROOT/writers
    else
        echo "Adicionando usuario $1 ao arquivo de writers do repositorio $2"
        echo "$1" >> $2/CVSROOT/writers        
    fi
    
    valid_pass=`cat /etc/shadow | grep $1 | cut -f2 -d: | cut -c1` ;
    if [ "$valid_pass" = "\$" ]
    then
        echo "Adicionando senha vinda do /etc/shadow no arquivo passwd do repositorio $2"
        cat /etc/shadow | grep $1 | cut -f1,2 -d: >> $2/CVSROOT/passwd
    else
        echo "Usuario nao possui senha em /etc/shadow. Eh preciso gerar encriptacao da senha do usuario"
        crypt_pass=`mkpasswd --hash=md5`
   echo "Adicionando senha encriptada no arquivo passwd do repositorio $2"
   echo $1:$crypt_pass >> $2/CVSROOT/passwd   
   exit
    fi    
}

del_from_writers()
{
    if [ "$1" = "" ] || [ "$2" = "" ];
    then
   echo "Faltam argumentos"
   exit
    fi
    
    if [ ! -d $2 ];
    then
   echo "Repositorio invalido ($2)"
   exit
    fi
    
    user=`cat /etc/passwd | grep $1 | cut -f1 -d:`
    if [ "$user" = "" ];
    then
   echo "Usuario nao existe no sistema, consulte /etc/passwd"    
   exit
    fi

    user=`cat $2/CVSROOT/writers | grep $1`
    if [ "$user" = "" ];
    then
   echo "Usuario nao existe no arquivo de writers"    
   exit
    fi
    
    echo "Removendo direitos de escrita do usuario $1 no repositorio $2"
    cat $2/CVSROOT/writers | grep -v ^$1 > $2/CVSROOT/writers
    cat $2/CVSROOT/passwd | grep -v ^$1 > $2/CVSROOT/passwd    
}

case "$1" in
    help|HELP|Help|-h|--help)
   help_usage ;;
    +r)
        add_to_readers $2 $3 ;;
    -r)
        del_from_readers $2 $3 ;;       
    +w)
        add_to_writers $2 $3 ;;
    -w)
        del_from_writers $2 $3 ;;
    *)
   help_usage ;;
esac

Scripts recomendados
   Script Linux recomendado Montando compartilhamento de máquinas Windows no Linux
   Script Linux recomendado purge
   Script Linux recomendado Instalador do plugin Flash 64 bits para Linux e UNIX/UNIX-like
   Script Linux recomendado Seu IP suas informções
   Script Linux recomendado plaspkg

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.