Administração de Usuários

Publicado por Messias Manoel da Silva Junior 14/07/2009

[ Hits: 8.808 ]

Download t.sh




Permite em modo gráfico ( kdialog ) adicionar usuário, remover usuário, listar usuários,
adicionar um usuário num grupo, listar grupos, adicionar grupos, remover grupos...

O script é todo intuitivo. Espero que gostem.

  



Esconder código-fonte

#!/bin/bash
# Autor: Messias Manoel da Silva Junior
#Script: Gerenciamento de Sistema
#Data: 15/05/2009
#


# -----   Variáveis ----
addusuario=$(which useradd)
delusuario=$(which userdel)
blqusuario=$(which passwd)
addgrupo=$(which addgroup)
remgrupo=$(which groupdel)
addusergrp=$(which gpasswd)

# ---- Tela de Boas vinda
   kdialog                                                                              \
      --title "            ------------        Seja Bem Vindo        ------------            "        \
      --msgbox "Este script te ajudará nas tarefas de administração do sistema."



while [ 1 = 1 ]; do

# ----- Exibi o menu na tela.
   resultado=$(
      kdialog --title "- Admin de Usuários" \
      --menu "           O que você gostaria de fazer?             " \
      1 "Adicionar usuário"         \
      2 "Remover usuário"         \
      3 "Bloquear usuário"         \
      4 "Desbloquear usuário"         \
      5 "Adicionar grupo"         \
      6 "Remover grupo"         \
      7 "Adicionar usuário ao grupo"      \
      8 "Verificar usuários existentes"      \
      9 "Verificar grupos existentes"   \
      0 "Sair"            )
      
#  ---  Se for presionado CANCELAR ou ESC, sai do script
   [ $? -ne 0 ] && break



   case $resultado in

   1)
   nome=`kdialog --inputbox "Digite o nome do usuário"`
#  ---  Verifica se o sudo está ativo
   souroot=`whoami`
   if [ "$souroot" != "root" ];then
   kdesudo "$addusuario -d /home/$nome -s /bin/bash $nome"
   clear
   kdialog --msgbox "Usuário Adicionado com Sucesso"
   fi ;;




   2)
   kdialog --msgbox "Listando a relação de usuários para você:"

   awk -F : '$3 > 1000 {print "Login: "$1}' /etc/passwd > /tmp/usuarios.txt

   kdialog --title "Lista de Usuários" \
      --textbox /tmp/usuarios.txt 290 80

   nomedel=`kdialog --inputbox "Digite o nome do usuário que deseja remover:"`
   souroot=`whoami`

   if [ "$souroot" != "root" ];then
   kdesudo "$delusuario -r $nomedel"
   fi 

   if [ $? = 0 ]; then
      kdialog --msgbox "Comando invalido."
   else
      kdialog --msgbox "Usuário "$nomedel" removido com sucesso."
   fi ;;




   3)
   kdialog --msgbox "Listando a relação de usuários para você:"
   awk -F : '$3 > 1000 {print "Login:    "$1}' /etc/passwd > /tmp/usuarios.txt

   kdialog --title "Lista de Usuários" \
      --textbox /tmp/usuarios.txt 290 80
    

   nomebloq=`kdialog --inputbox "Digite o nome do usuário que deseaja bloquear:"`
   souroot=`whoami`

   if [ "$souroot" != "root" ];then
      kdesudo "$blqusuario -l $nomebloq"
   fi

   if [ $? = 0 ]; then
      kdialog --msgbox "Comando invalido."
   else
      kdialog --msgbox "Usuário "$nomebloq" bloqueado com sucesso"

   fi ;;



      
      4)
      kdialog --msgbox "Listando a relação de usuários para você:"
      awk -F : '$3 > 1000 {print "Login:    "$1}' /etc/passwd > /tmp/usuarios.txt

      kdialog   --title "Relação dos Usuários no Sistema"   \
         --textbox /tmp/usuarios.txt 290 80

      nomedesbloq=`kdialog --inputbox "Digite o nome do usuário que deseaja desbloquear:"`
   souroot=`whoami`

   if [ "$souroot" != "root" ];then
      kdesudo "$blqusuario -u $nomedesbloq"
   fi

      if [ $? = 0 ]; then
      kdialog --msgbox "Comando invalido."
   else
      kdialog --msgbox "Usuário "$nomedesbloq" desbloqueado com sucesso."  \
      
      fi ;;





      5)
      kdialog --msgbox "Listando a relação de grupos para você:"
      awk -F : '$3 > 1000 {print"Grupo: " $1 }' /etc/group > /tmp/grupos.txt
      kdialog   --title "Relação dos Grupos no Sistema"           \
         --textbox /tmp/grupos.txt 290 80 

      nomegrupo=`kdialog --inputbox "Digite o nome do grupo que deseaja criar: "`
   souroot=`whoami`

   if [ "$souroot" != "root" ];then
      kdesudo $addgrupo $nomegrupo
   fi

      if [ $? = 0 ]; then
      kdialog --msgbox "Comando invalido."
   else
      kdialog --msgbox "Grupo "$noegrupo" adicionado com sucesso"
      fi ;;



   6)
   awk -F : '$3 > 1000 {print"Grupo: " $1 }' /etc/group > /tmp/grupos.txt
   kdialog   --title "Relação dos Grupos no Sistema"           \
      --textbox /tmp/grupos.txt 290 80 

   grupo=$`kdialog --msgbox "Digite o nome do grupo que deseja remover: "`
   souroot=`whoami`

   if [ "$souroot" != "root" ];then
   kdesudo "$remgrupo $GROUP"
   fi

      if [ $? = 0 ]; then
      kdialog --msgbox "Comando invalido."
   else
      kdialog --msgbox "Grupo "$regrupo" removid coom sucesso"
      fi ;;



   7)
# ----  Lista de usuários --------------
   awk -F : '$3 > 1000 {print "Login: "$1}' /etc/passwd > /tmp/usuarios.txt
# --------------------------------------

# ----  Lista de grupos --------------
   awk -F : '$3 > 1000 {print"        Grupo: "$1 }' /etc/group > /tmp/grupos.txt
# ------------------------------------


# ---- Cocatenando os dois arquivos ---------
paste -d" " /tmp/usuarios.txt /tmp/grupos.txt > /tmp/cocat.txt
# -------------------------------------------

   kdialog --title "Lista de usuários e grupos para você:"  \
      --textbox /tmp/cocat.txt 290 80

   usergrupo=`kdialog --inputbox "Digite o nome do usuário existente que deseja adicionar no grupo:"`
   grupouser=`kdialog --inputbox "Digite o nome do grupo existente que o usuário deve ser adicionado:"`

   souroot=`whoami`

   if [ "$souroot" != "root" ];then
   kdesudo "$addusergrp -a $usergrupo $grupouser"
   fi

   if [ $? = 0 ]; then
   kdialog --msgbox "Usuário "$usergrupo" adicionado no grupo "$grupouser" com sucesso"
   else
   kdialog --msgbox "Comando invalido."
   fi ;;



   8)
   awk -F : '$3 > 1000 {print "Login:    "$1}' /etc/passwd > /tmp/usuarios.txt
   kdialog   --title "Relação dos Usuários no Sistema"   \
      --textbox /tmp/usuarios.txt 290 80 ;;
   

   9)
   awk -F : '$3 > 1000 {print"Grupo: " $1 }' /etc/group > /tmp/grupos.txt
   kdialog   --title "Relação dos Grupos no Sistema"           \
      --textbox /tmp/grupos.txt 290 80 ;;


      0)
      break ;;

      *)
      kdialog -- msgbox "Cancelado" ;;


esac

done



Scripts recomendados

Script de Backup para FITA DAT usando "tar"

Monitoração do CBQ

Backup LDAP

MySQL bash script

Tabela de cores em shellscript


  

Comentários
[1] Comentário enviado por Lisandro em 14/07/2009 - 07:33h

Não testei, mas a leitura do Script está fácil, bem comentado e clean. Muito bom para aprender. Parabéns.

[2] Comentário enviado por juniormj em 14/07/2009 - 11:00h

Obrigado, Lisandro.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts