Gerenciador de contas de usuários

Publicado por rafael silveira gomes (última atualização em 25/04/2014)

[ Hits: 7.275 ]

Download gerenciarUsuarios.sh




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.

  



Esconder código-fonte

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
}

Scripts recomendados

Menu de saída para i3 (versão em Zenity)

Leitor de RSS

Para quem esquece facil das coisas

Limpar pacotes com versões antigas do cache do apt

Envia mensagens para o serviço mensageiro do windows facilmente


  

Comentários
[1] Comentário enviado por maran em 05/05/2014 - 19:39h

Cara ficou bem legal este script em, parabéns!

[2] Comentário enviado por rsilveiragomes em 11/09/2015 - 01:36h

Valeu :)

[3] Comentário enviado por leonardomadeira em 07/09/2016 - 11:19h

SCRIPT MUITO BOM


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts