Inclusão/Exclusão de usuários no CVS.
[ Hits: 5.117 ]
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
Link direto de arquivos no Sharex
Script de backup e envio via SSH
Shell Script para instalação do software FTOOL
Localizador não interativo do Mozilla Firefox para Slackware
Instalar impressora no CUPS a partir de um arquivo PPD
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
converter algoritmo C++ em C? (0)
Falha com leitor de digitais no Ubuntu: sugestões? (0)