Inclusão/Exclusão de usuários no CVS.
[ Hits: 4.896 ]
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.
#!/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
Ping para servidores tendo um arquivo TXT com a lista dos IPs/Hostnames
Errata: Configuração do Modem Sony Ericsson MD300 da Claro 3G no Linux
Terminal logando vários SSH em abas
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhorando a precisão de valores flutuantes em python[AJUDA] (3)
Instalação Uefi com o instalador clássico do Mageia (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta