Administraçăo de Usuários
Publicado por Messias Manoel da Silva Junior 14/07/2009
[ Hits: 9.139 ]
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.
#!/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
Backup Automatizado (atualizado)
Gerenciamento de software e hardware de desktop
Instalando a última versăo estável do Eclipse com uma única linha
Auto-installer ISP Config 3 - FC 11
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSŐES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Vou destruir sua infância:) (8)
Interface gráfica com problema (2)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)









