cesarzeta

Admin users and groups red

Mar 2nd, 2013
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 7.17 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. function main(){
  4. while [ true ]
  5. do
  6.     #Comprobamos que el usuario es root.
  7.     if [ $(whoami) != "root" ]
  8.     then
  9.             echo "Debe ser root para correr este script."
  10.             echo "Entre como root al sistema , o puede usar "sudo -i" sin las comillas."
  11.             sleep 3
  12.             exit
  13.     fi     
  14.     #Presentación.
  15.     echo
  16.     echo "Script para Administración de Usuarios"
  17.     echo "------ -- -------------- -- ----- ------ -- ---"
  18.     echo
  19.     #Mostramos el menú de administración
  20.     echo " Menú"
  21.     echo " ----"
  22.     echo " 1. Crear un usuario con adduser."
  23.     echo " 2. Crear un usuario con useradd. ArchLinux"
  24.     echo " 3. Ver datos de un usuario."
  25.     echo " 4. Cambiar la contraseña de un usuario."
  26.     echo " 5. Forzar a un usuario a cambiar la contraseña."
  27.     echo " 6. Bloquear cuenta de usuario"
  28.     echo " 7. Desbloquear cuenta de usuario"
  29.     echo " 8. Añadir un usuario a un grupo."
  30.     echo " 9. Borrar un usuario."
  31.     echo " 10. Crear un grupo."
  32.     echo " 11. Borrar un grupo."
  33.     echo " 0. Salir."
  34.     echo
  35.     #Elegimos una opción y controlamos errores en la elección
  36.     echo -n " Elija una opción: "
  37.     read  opcion
  38.     if [ "$opcion" = "" ];then echo "No eligió la opción";sleep 3;main;else  let n=$opcion;let min=0;let max=11;fi
  39.     if [ "$n" -lt "$min"  -o  "$n" -gt "$max" ];then echo "Eligió una opción no válida."; n="";sleep 3;fi
  40.     #Llamamos a la función seleccion para ejecutar la opción elegida
  41.     seleccion `echo $opcion`
  42. done
  43. }
  44.  
  45. function seleccion(){
  46. case $1 in
  47. 0)
  48. salir
  49. ;;
  50. 1)
  51. create_user
  52. ;;
  53. 2)
  54. create_user_arch
  55. ;;
  56. 3)
  57. query_user
  58. ;;
  59. 4)
  60. ch_passwd_user
  61. ;;
  62. 5)
  63. ch_passwd_user_f
  64. ;;
  65. 6)
  66. lock_user
  67. ;;
  68. 7)
  69. unlock_user
  70. ;;
  71. 8)
  72. user_to_group
  73. ;;
  74. 9)
  75. delete_user
  76. ;;
  77. 10)
  78. create_group
  79. ;;
  80. 11)
  81. delete_group
  82. ;;
  83. esac
  84. }
  85.  
  86. function getusers(){
  87. if [ -f /tmp/usuarios  ];then rm /tmp/usuarios;fi
  88. cat /etc/passwd | cut -d: -f1 | sort >> /tmp/usuarios
  89. echo;echo "Usuarios existentes en el sistema.";echo
  90. while read linea;do echo $linea;done < /tmp/usuarios
  91. }
  92.  
  93. function getgroups(){
  94. if [ -f /tmp/grupos  ];then rm /tmp/grupos;fi
  95. cat /etc/group | cut -d: -f1 | sort >>/tmp/grupos
  96. echo;echo "Grupos existentes en el sistema.";echo
  97. while read linea;do echo $linea;done < /tmp/grupos
  98. }
  99.  
  100. function create_user(){
  101. getusers
  102. existe="no"
  103. echo;echo "Crear un usuario";echo;echo -n "Nombre del usuario a crear: ";read nombre
  104. while read linea;do if  [ "$linea" = "$nombre" ];then  existe="si";fi;done </tmp/usuarios
  105. if [ "$existe" = "no"  ];then adduser $nombre;else echo;echo "Error, el usuario ya existe";sleep 3;fi
  106. }
  107.  
  108. function create_user_arch(){
  109. getusers
  110. existe="no"
  111. echo;echo "Crear un usuario";echo;echo -n "Nombre del usuario a crear: ";read nombre
  112. while read linea;do if  [ "$linea" = "$nombre" ];then  existe="si";fi;done </tmp/usuarios
  113. if  [ "$existe" =  "no"  ]
  114. then
  115.     echo   "Escriba los grupos a los que el usuario pertenecerá"
  116.     echo   "separados por \",\" sin espacio entre ellos."
  117.     echo -n "Ejemplo: wheel,video,audio,optical,scanner :"
  118.     read selgroups
  119.     useradd -m -g users -G $selgroups -s /bin/bash   $nombre
  120. else
  121.     echo;echo "Error, el usuario ya existe";sleep 3
  122. fi
  123. }
  124.  
  125. function delete_user(){
  126. getusers
  127. echo;echo "Borrar un usuario";echo;echo -n "Nombre del usuario a borrar: ";read nombre
  128. if [ "$nombre" = "root" ];then echo "Error. No puede borrar root";main;fi
  129. echo;echo "No se borrara  /home/usuario de $nombre."
  130. echo "El borrrado deberá ejecutarse manualmente"
  131. echo "El borrado de $nombre de /etc/groups deberá ser manual"
  132. echo;userdel  $nombre;sleep 3
  133. }
  134.  
  135. function ch_passwd_user(){
  136. getusers
  137. existe="no"
  138. echo;echo "Cambiar contraseña de un usuario"
  139. echo;echo -n "Nombre del usuario a cambiar passwd: ";read nombre
  140. while read linea;do if  [ "$linea" = "$nombre" ];then  existe="si";fi;done </tmp/usuarios
  141. if [ "$existe" = "si"  ];then passwd $nombre;else echo;echo "Error. El usuario no existe";sleep 3;fi
  142. }
  143.  
  144. function ch_passwd_user_f(){
  145. getusers
  146. existe="no"
  147. echo;echo "Obligar  cambio de contraseña a un usuario"
  148. echo;echo -n "Nombre del usuario obligado a cambiar passwd: ";read nombre
  149. while read linea;do if  [ "$linea" = "$nombre" ];then  existe="si";fi;done </tmp/usuarios
  150. if [ "$existe" = "si"  ];then chage -d 0 $nombre;else echo;echo "Error. El usuario no existe";sleep 3;fi
  151. }
  152.  
  153. function lock_user(){
  154. getusers
  155. existe="no"
  156. echo;echo "Bloquear un usuario";echo;echo -n "Nombre del usuario a bloquear: ";read nombre
  157. if [ "$nombre" = "root" ];then echo "Error. No puede bloquear root";main;fi
  158. while read linea;do if  [ "$linea" = "$nombre" ];then  existe="si";fi;done </tmp/usuarios
  159. if [ "$existe" = "si"  ];then echo;passwd -l $nombre;else echo;echo "Error, el usuario no existe";sleep 3;fi
  160. }
  161.  
  162. function unlock_user(){
  163. getusers
  164. existe="no"
  165. echo;echo "Desbloquear un usuario";echo;echo -n "Nombre del usuario a desbloquear: ";read nombre
  166. while read linea;do if  [ "$linea" = "$nombre" ];then  existe="si";fi;done </tmp/usuarios
  167. if [ "$existe" = "si"  ];then echo; passwd -u $nombre;else echo;echo "Error, el usuario no existe";sleep 3;fi
  168. }
  169.  
  170. function query_user(){
  171. getusers
  172. existe="no"
  173. echo;echo "Consultar sobre un usuario";echo;echo -n "Nombre del usuario a consultar: ";read nombre
  174. while read linea;do if  [ "$linea" = "$nombre" ];then  existe="si";fi;done </tmp/usuarios
  175. if [ "$existe" = "si"  ]
  176. then
  177.     Userid=`cat /etc/passwd | grep -Ew ^$nombre | cut -d":" -f3`
  178.     UserPrimaryGroupId=`cat /etc/passwd | grep -Ew ^$nombre | cut -d":" -f4`
  179.     UserPrimaryGroup=`cat /etc/passwd | grep :"$UserPrimaryGroupId": | cut -d":" -f1`
  180.     UserInfo=`cat /etc/passwd | grep -Ew ^$nombre | cut -d":" -f5`
  181.     UserHomeDir=`cat /etc/passwd | grep -Ew ^$nombre | cut -d":" -f6`
  182.     UserShell=`cat /etc/passwd | grep -Ew ^$nombre | cut -d":" -f7`
  183.     UserGroups=`cat /etc/group |grep $nombre |cut -d":" -f1`
  184.     HomeDirSize=`exec du -hs $UserHomeDir `
  185.     echo "Nombre" "$nombre" "$Userid"
  186.     echo "Información del usuario" "$UserInfo"
  187.     echo
  188.     echo "Grupo primario" "$UserPrimaryGroup" "$UserPrimaryGroupId"
  189.     echo "Shell por defecto" "$UserShell"
  190.     echo  "Es mienbro de los grupos:"
  191.     echo "$UserGroups"
  192.     echo
  193.     echo "Directorio personal" $UserHomeDir  $HomeDirSize
  194.     chage -l $nombre | grep "La contraseña caduca"  
  195.     chage -l $nombre | grep "Último cambio de contraseña"
  196.     chage -l $nombre | grep "La cuenta caduca"
  197.         echo;echo -n "Para continuar presione enter: ";read opcion  
  198. else
  199.     echo "Error. El usuario no existe";sleep 3
  200. fi
  201. }
  202.  
  203. function user_to_group(){
  204. getusers
  205. echo;echo "Agregar usuario a un grupo";echo;echo -n "Nombre del usuario a agregar: ";read usernombre
  206. echo
  207. getgroups
  208. echo;echo -n "Nombre del grupo donde agregar el usuario: ";read groupnombre
  209. usermod -a -G $groupnombre $usernombre;sleep 3
  210. }
  211.  
  212. function create_group(){
  213. getgroups
  214. existe="no"
  215. echo;echo "Crear un grupo";echo;echo -n "Nombre del nuevo grupo: ";read grupo
  216. while read linea;do if [ "$linea" = "$grupo" ];then existe="si";fi;done </tmp/grupos
  217. if [ "$existe" = "si"  ];then echo;echo "Error, el grupo ya existe";sleep 3;else addgroup $grupo;fi
  218. }
  219.  
  220. function delete_group(){
  221. getgroups
  222. echo;echo "Borrar un grupo";echo;echo -n "Nombre del grupo a borrar: ";read nombre
  223. echo;groupdel  $nombre;sleep 3
  224. }
  225.  
  226. function salir(){
  227. if [ -f /tmp/usuarios  ];then rm /tmp/usuarios;fi
  228. if [ -f /tmp/grupos  ];then rm /tmp/grupos;fi
  229. exit 0
  230. }
  231. main
Advertisement
Add Comment
Please, Sign In to add comment