script shell

July 15, 2009 by thiago · Leave a Comment
Filed under: Live Linux 

Pessoal,

Recebi de um conhecido o script abaixo que ajuda a gerenciar usuários, grupos  e afins. Muito interessante o script e funcional segue abaixo.

#!/bin/bash

# Autor: Messias Manoel da Silva Junior
#Script: Gerenciamento de Sistema
#Data: 15/05/2007
#
# Para ser adicionado depois.
# echo "O total de usuàrios:"; awk -F : '$3 > 1000 {print $1}' /etc/passwd | wc -l
# conta quantos usuários estão no sistema.

# -----   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