Gerenciador de contas de usuários
Publicado por rafael silveira gomes (última atualização em 25/04/2014)
[ Hits: 7.388 ]
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
}
Limpeza de logs sem dor de cabeça
Ajustando resolução do monitor
Configuração de rede wireless (WPA)
verificar os maiores arquivos no HD
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
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
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
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)









