Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- function main(){
- while [ true ]
- do
- #Comprobamos que el usuario es root.
- if [ $(whoami) != "root" ]
- then
- echo "Debe ser root para correr este script."
- echo "Entre como root al sistema , o puede usar "sudo -i" sin las comillas."
- sleep 3
- exit
- fi
- #Presentación.
- echo
- echo "Script para Administración de Usuarios"
- echo "------ -- -------------- -- ----- ------ -- ---"
- echo
- #Mostramos el menú de administración
- echo " Menú"
- echo " ----"
- echo " 1. Crear un usuario con adduser."
- echo " 2. Crear un usuario con useradd. ArchLinux"
- echo " 3. Ver datos de un usuario."
- echo " 4. Cambiar la contraseña de un usuario."
- echo " 5. Forzar a un usuario a cambiar la contraseña."
- echo " 6. Bloquear cuenta de usuario"
- echo " 7. Desbloquear cuenta de usuario"
- echo " 8. Añadir un usuario a un grupo."
- echo " 9. Borrar un usuario."
- echo " 10. Crear un grupo."
- echo " 11. Borrar un grupo."
- echo " 0. Salir."
- echo
- #Elegimos una opción y controlamos errores en la elección
- echo -n " Elija una opción: "
- read opcion
- if [ "$opcion" = "" ];then echo "No eligió la opción";sleep 3;main;else let n=$opcion;let min=0;let max=11;fi
- if [ "$n" -lt "$min" -o "$n" -gt "$max" ];then echo "Eligió una opción no válida."; n="";sleep 3;main;fi
- #Llamamos a la función seleccion para ejecutar la opción elegida
- seleccion `echo $opcion`
- done
- }
- function seleccion(){
- case $1 in
- 0)
- salir
- ;;
- 1)
- create_user
- ;;
- 2)
- create_user_arch
- ;;
- 3)
- query_user
- ;;
- 4)
- ch_passwd_user
- ;;
- 5)
- ch_passwd_user_f
- ;;
- 6)
- lock_user
- ;;
- 7)
- unlock_user
- ;;
- 8)
- user_to_group
- ;;
- 9)
- delete_user
- ;;
- 10)
- create_group
- ;;
- 11)
- delete_group
- ;;
- esac
- }
- function getusers(){
- if [ -f /tmp/usuarios ];then rm /tmp/usuarios;fi
- cat /etc/passwd | cut -d: -f1 | sort >> /tmp/usuarios
- echo
- echo "Usuarios existentes en el sistema."
- echo
- while read linea
- do
- echo $linea
- done < /tmp/usuarios
- }
- function getgroups(){
- if [ -f /tmp/grupos ];then rm /tmp/grupos;fi
- cat /etc/group | cut -d: -f1 | sort >>/tmp/grupos
- echo
- echo "Grupos existentes en el sistema."
- echo
- while read linea
- do
- echo $linea
- done < /tmp/grupos
- }
- function create_user(){
- getusers
- existe="no"
- echo
- echo "Crear un usuario"
- echo
- echo -n "Nombre del usuario a crear: "
- read nombre
- while read linea
- do
- if [ "$linea" = "$nombre" ];then existe="si";fi
- done </tmp/usuarios
- if [ "$existe" = "no" ]
- then
- adduser $nombre
- else
- echo
- echo "Error, el usuario ya existe"
- sleep 3
- fi
- }
- function create_user_arch(){
- getusers
- existe="no"
- echo
- echo "Crear un usuario"
- echo
- echo -n "Nombre del usuario a crear: "
- read nombre
- while read linea
- do
- if [ "$linea" = "$nombre" ];then existe="si";fi
- done </tmp/usuarios
- if [ "$existe" = "no" ]
- then
- echo "Escriba los grupos a los que el usuario pertenecerá"
- echo "separados por \",\" sin espacio entre ellos."
- echo -n "Ejemplo: wheel,video,audio,optical,scanner :"
- read selgroups
- useradd -m -g users -G $selgroups -s /bin/bash $nombre
- else
- echo
- echo "Error, el usuario ya existe"
- sleep 3
- fi
- }
- function delete_user(){
- getusers
- echo
- echo "Borrar un usuario"
- echo
- echo -n "Nombre del usuario a borrar: "
- read nombre
- if [ "$nombre" = "root" ];then echo "Error. No puede borrar root.";main;fi
- echo
- echo "No se borrara /home/usuario de $nombre."
- echo "El borrrado deberá ejecutarse manualmente"
- echo "El borrado de $nombre de /etc/groups deberá ser manual"
- echo
- userdel $nombre
- sleep 3
- }
- function ch_passwd_user(){
- getusers
- existe="no"
- echo
- echo "Cambiar contraseña de un usuario"
- echo
- echo -n "Nombre del usuario a cambiar passwd: "
- read nombre
- while read linea
- do
- if [ "$linea" = "$nombre" ];then existe="si";fi
- done </tmp/usuarios
- if [ "$existe" = "si" ]
- then
- passwd $nombre
- else
- echo
- echo "Error. El usuario no existe"
- sleep 3
- fi
- }
- function ch_passwd_user_f(){
- getusers
- existe="no"
- echo
- echo "Obligar cambio de contraseña a un usuario"
- echo
- echo -n "Nombre del usuario obligado a cambiar passwd: "
- read nombre
- while read linea
- do
- if [ "$linea" = "$nombre" ];then existe="si";fi
- done </tmp/usuarios
- if [ "$existe" = "si" ]
- then
- chage -d 0 $nombre
- else
- echo
- echo "Error. El usuario no existe"
- sleep 3
- fi
- }
- function lock_user(){
- getusers
- existe="no"
- echo
- echo "Bloquear un usuario"
- echo
- echo -n "Nombre del usuario a bloquear: "
- read nombre
- if [ "$nombre" = "root" ];then echo "Error. No puede bloquear root.";main;fi
- while read linea
- do
- if [ "$linea" = "$nombre" ];then existe="si";fi
- done </tmp/usuarios
- if [ "$existe" = "si" ]
- then
- echo
- passwd -l $nombre
- else
- echo
- echo "Error, el usuario no existe"
- sleep 3
- fi
- }
- function unlock_user(){
- getusers
- existe="no"
- echo
- echo "Desbloquear un usuario"
- echo
- echo -n "Nombre del usuario a desbloquear: "
- read nombre
- while read linea
- do
- if [ "$linea" = "$nombre" ];then existe="si";fi
- done </tmp/usuarios
- if [ "$existe" = "si" ]
- then
- echo
- passwd -u $nombre
- else
- echo
- echo "Error, el usuario no existe"
- sleep 3
- fi
- }
- function query_user(){
- getusers
- existe="no"
- echo
- echo "Consultar sobre un usuario"
- echo
- echo -n "Nombre del usuario a consultar: "
- read nombre
- while read linea
- do
- if [ "$linea" = "$nombre" ];then existe="si";fi
- done </tmp/usuarios
- if [ "$existe" = "si" ]
- then
- Userid=`cat /etc/passwd | grep -Ew ^$nombre | cut -d":" -f3`
- UserPrimaryGroupId=`cat /etc/passwd | grep -Ew ^$nombre | cut -d":" -f4`
- UserPrimaryGroup=`cat /etc/passwd | grep :"$UserPrimaryGroupId": | cut -d":" -f1`
- UserInfo=`cat /etc/passwd | grep -Ew ^$nombre | cut -d":" -f5`
- UserHomeDir=`cat /etc/passwd | grep -Ew ^$nombre | cut -d":" -f6`
- UserShell=`cat /etc/passwd | grep -Ew ^$nombre | cut -d":" -f7`
- UserGroups=`cat /etc/group |grep $nombre |cut -d":" -f1`
- HomeDirSize=`exec du -hs $UserHomeDir `
- echo "Nombre" "$nombre" "$Userid"
- echo "Información del usuario" "$UserInfo"
- echo
- echo "Grupo primario" "$UserPrimaryGroup" "$UserPrimaryGroupId"
- echo "Shell por defecto" "$UserShell"
- echo "Es mienbro de los grupos:"
- echo "$UserGroups"
- echo
- echo "Directorio personal" $UserHomeDir $HomeDirSize
- chage -l $nombre | grep "La contraseña caduca"
- chage -l $nombre | grep "Último cambio de contraseña"
- chage -l $nombre | grep "La cuenta caduca"
- echo;echo -n "Para continuar presione enter: ";read opcion
- else
- echo "Error. El usuario no existe"
- sleep 3
- fi
- }
- function user_to_group(){
- getusers
- echo
- echo "Agregar usuario a un grupo"
- echo
- echo -n "Nombre del usuario a agregar:"
- read usernombre
- echo
- getgroups
- echo
- echo -n "Nombre del grupo donde agregar el usuario:"
- read groupnombre
- usermod -a -G $groupnombre $usernombre
- sleep 3
- }
- function create_group(){
- getgroups
- existe="no"
- echo
- echo "Crear un grupo"
- echo
- echo -n "Nombre del nuevo grupo: "
- read grupo
- while read linea
- do
- if [ "$linea" = "$grupo" ];then existe="si";fi
- done </tmp/grupos
- if [ "$existe" = "si" ]
- then
- echo
- echo "Error, el grupo ya existe"
- sleep 3
- else
- addgroup $grupo
- fi
- }
- function delete_group(){
- getgroups
- echo
- echo "Borrar un grupo"
- echo
- echo -n "Nombre del grupo a borrar: "
- read nombre
- echo
- groupdel $nombre
- sleep 3
- }
- function salir(){
- if [ -f /tmp/usuarios ];then rm /tmp/usuarios;fi
- if [ -f /tmp/grupos ];then rm /tmp/grupos;fi
- exit 0
- }
- main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement