Gerenciador de contas de usuários

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

[ Hits: 7.022 ]

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

Script para converter um diretório de arquivos em mp3 para ogg.

Watch Dog para Nagios

Proxy

vkernel

Ip dinâmico


  

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