Gerenciador de contas de usuários
Publicado por rafael silveira gomes (última atualização em 25/04/2014)
[ Hits: 7.472 ]
No anexo está salvo como um único arquivo pois só é possível fazer upload de um arquivo.
Baixando do anexo funciona sem alterar nada.
Mas caso queiram utilizar em dois arquivos (para ficar mais organizado e melhor de entender), copiem o texto abaixo:
A primeira parte pode ter qualquer nome.
A segunda parte deve chamar-se "funcoes.sh", caso queiram mudar o nome deve ser alterado também na importação da primeira parte onde está escrito:
"source funcoes.sh"
Altere de acordo com o nome que queira dar à segunda parte.
Arquivo principal:
#!/bin/bash
# Criado por: Rafael S. Gomes 16-03-2014
# GERENCIADOR DE USUARIOS
# MENU PRINCIPAL
source funcoes.sh
menu() {
clear
echo " Gerenciador de usuarios"
echo
echo "Escolha a opção desejada: "
echo
echo "1 - Criar novo usuario."
echo "2 - Criar novo grupo."
echo "3 - Adicionar um usuario existente a um grupo."
echo "4 - Criar um usuario e adicioná-lo a um grupo."
echo "5 - Remover um usuario."
echo "6 - Remover um grupo."
echo "7 - Informações sobre um determinado usuario."
echo "8 - Modificar informações de um determinado usuario."
echo "9 - Configurar a data da última modificação da senha de um usuario."
echo "10 - Configurar quantidade min. de dias para um usuario mudar a senha."
echo "11 - Configurar quantidade max. de dias para um usuario mudar a senha."
echo "12 - Configurar quantidade de dias para o aviso de alteração de senha."
echo "13 - Configurar dias para desativação do usuario (após expiração da senha)."
echo "14 - Mostrar as configurações de senha de um determinado usuario."
echo "15 - Mostrar grupos que um determinado usuario participa."
echo "16 - Modificar o grupo proprietario de um determinado arquivo."
echo "17 - Modificar o usuario proprietario de um determinado arquivo."
echo "0 - Sair."
read opt
return
}
escolha() {
case $1 in
1) novoUsuario;;
2) novoGrupo;;
3) usuarioEmGrupo;;
4) novoUsuarioEmGrupo;;
5) removeUsuario;;
6) removeGrupo;;
7) infoUsuario;;
8) modInfoUsuario;;
9) confLastModKey;;
10) confMinModKey;;
11) confMaxModKey;;
12) confWarnModKey;;
13) confDesativUsuario;;
14) listKeyInfo;;
15) gruposDoUsuario;;
16) grupoProprietario;;
17) usuarioProprietario;;
0) clear;exit;;
*) echo "Opção inválida!";;
esac
return
}
clear
echo "*** Este script requer privilégios de super usuario"
echo "*** Certifique-se de execute-o como #root"
sleep 1
until [$opt != 0]; do
clear
menu
escolha "$opt"
read > /dev/null
done
clear
Arquivo 2 - funcoes.sh:
#!/bin/bash
# Criado por: Rafael S. Gomes 16-03-2014
# FUNÇÕES DO GERENCIADOR DE USUÁRIOS
# 1
# criar novo usuario
novoUsuario() {
clear
echo "Entre com o nome do novo usuario: "
read newUsuario
adduser $newUsuario --home /home/$newUsuario
return
}
# 2
# criar novo grupo
novoGrupo() {
clear
echo "Entre com o nome do novo grupo: "
read newGrupo
addgroup $newGrupo
return
}
# 3
# adicionar um usuario existente a um grupo
usuarioEmGrupo() {
clear
echo "Entre com o nome do usuario: "
read usuario
echo "Entre com o nome do grupo: "
read grupo
adduser $usuario $grupo
return
}
# 4
# criar novo usuario e adicioná-lo a um grupo existente
novoUsuarioEmGrupo() {
clear
echo "Entre com o nome do novo usuario: "
read newUsuario
echo "Entre com o nome do grupo: "
read grupo
adduser $newUsuario --home /home/$newUsuario --ingroup $grupo
return
}
# 5
# remover usuario
removeUsuario() {
clear
echo "Entre com o nome do usuario a ser removido: "
read usuario
userdel -rf $usuario
return
}
# 6
# remover grupo
removeGrupo() {
clear
echo "Qual grupo deseja remover?"
read grupo
groupdel $grupo
return
}
# 7
# mostrar informações pessoais de um usuario
infoUsuario() {
clear
echo "Entre com o nome do usuario a ser visualizado: "
read usuario
clear
finger $usuario
return
}
# 8
# modificar informações pessoais de um usuario
modInfoUsuario() {
clear
echo "Entre com o nome do usuario a ser editado: "
read usuario
chfn $usuario
return
}
# 9
# Configurar data de última modificação de senha do usuario
confLastModKey() {
clear
echo "Entre com o nome do usuario a ser editado: "
read usuario
echo "Entre com data da última alteração da senha feita: "
echo "* Utilize o padrão DD-MM-AAAA"
echo "* Ex: 01-02-2003"
read data
chage $usuario --lastday $data
return
}
# 10
# Configurar a quantidade mín. de dias para troca de senha
confMinModKey() {
clear
echo "Entre com o nome do usuario a ser editado: "
read usuario
echo "Entre com a quantidade mínima (em dias) para troca de senha: "
read dias
chage $usuario --mindays $dias
return
}
# 11
# Configurar a quantidade max. de dias para troca de senha
confMaxModKey() {
clear
echo "Entre com o nome do usuario a ser editado: "
read usuario
echo "Entre com a quantidade máxima (em dias) para troca de senha: "
read dias
chage $usuario --maxdays $dias
return
}
# 12
# Configurar quantidade de dias para o aviso de alteração de senha
confWarnModKey() {
clear
echo "Entre com o nome do usuario a ser editado: "
read usuario
echo "Entre com a quantidade de dias para o aviso de alteração da senha: "
read dias
chage $usuario --warndays $dias
return
}
# 13
# Configurar dias para desativação do usuario (após expiração da senha)
confDesativUsuario() {
clear
echo "Entre com o nome do usuario a ser editado: "
read usuario
echo "Entre com a data de desativação da conta: "
echo "* Utilize o padrão DD-MM-AAAA"
echo "* Ex: 01-02-2003"
read data
chage $usuario --expiredate $data
return
}
# 14
# Mostrar as configurações de senha de um determinado usuario.
listKeyInfo() {
clear
echo "Entre com o nome do usuario a ser visualizado: "
read usuario
clear
echo "Configurações de senha do usuario: $usuario"
echo
chage --list $usuario
return
}
# 15
# Mostrar grupos que um determinado usuario participa
gruposDoUsuario() {
clear
echo "Entre com o nome do usuario a ser visualizado: "
read usuario
clear
echo "Usuario : grupos que participa"
echo
groups $usuario
return
}
# 16
# Modificar o grupo proprietario de um determinado arquivo
grupoProprietario() {
clear
echo "Entre com o endereço absoluto do arquivo: "
echo "* Ex: /home/usuario/arquivo.txt"
read arquivo
echo "Entre com o novo grupo proprietário do arquivo: "
read grupo
# utilizando o parametro -R para evitar erros caso seja informado um diretório
chgrp -R $grupo $arquivo
return
}
# 17
# Modificar o usuario proprietario de um determinado arquivo
usuarioProprietario(){
clear
echo "Entre com o endereço absoluto do arquivo: "
echo "* Ex: /home/usuario/arquivo.txt"
read arquivo
echo "Entre com o novo usuário proprietário do arquivo: "
read usuario
# utilizando o parametro -R para evitar erros caso seja informado um diretório
chown -R $usuario $arquivo
return
}
Verificar e efetua o download da nova versão do antivirus McAfee
space2sep (Trocar arquivos com espaço "\ ")
Script estavel e confiável para verificar o seu IP REAL e lhe enviar um email.
Desligando o computador quando acabarem as músicas na sua lista de reprodução do MPD
Script Iptables para servidor DNS e SSH
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)









