Inclusão/Exclusão de usuários no CVS.
[ Hits: 5.068 ]
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
Removendo primeiras ou últimas linhas do arquivo
Startando jboss e serviços necessários
Autenticando no Velox Empresarial
Script para pegar ip WAN para firewall com uma ou mais links de internet
Nenhum coment�rio foi encontrado.
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Realizar overclock no Miyoo Mini (plus ou normal)
Otimização de memória para máquinas modestas
Unbuntu não atualiza o firmware [RESOLVIDO] (2)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (0)
Dúvidas sobre a originalidade de conteúdos online (10)
Erro de interface de Rede no Virt Manager dentro Debian 13 KDE (12)