Inclusão/Exclusão de usuários no CVS.
[ Hits: 4.795 ]
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
Kronos - Sincronização de arquivos remotos
Nenhum comentário foi encontrado.
Agora temos uma assistente virtual no fórum!!! (247)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
iso de sistema 32 bit em atividade (13)
Agora temos uma assistente virtual no fórum!!! (247)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (27)