Inclusão/Exclusão de usuários no CVS.
[ Hits: 5.012 ]
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
Configuração de rede wireless (WPA)
usando o jSMS direto do pendrive (v2.0)
Backup para fita dat em Dialog
Buscar conteúdo digitado em sites de busca
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Aplicativo simples para gravar tela
Quebra de linha na data e hora no Linux Mint
Firefox não abre em usuário não administradores (0)
Sempre que vou baixar algum pacote acontece o erro dpkg (8)
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (8)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)