Inclusão/Exclusão de usuários no CVS.
[ Hits: 5.160 ]
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
Montar imagens iSO em local especificado
Criar pacote Debian do thunderbird de br.mozdev.org
diskSpace - acha os dez maiores gastadores de espaço em disco
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Como programar um sistema de controle para distribuições linux em c? (0)
Compartilhar ZEBRA ZD220 na rede (2)
Como programar um software que seja utilizado para coleta de dados em ... (1)









