Monday 27 July 2015

Consejos y trucos, artículos básicos sobre configuraciones que ayudan a un mejor desempeño de nuestros SO's. Cada proceso ha sido personalmente comprobado.



En este blog continuamos con la parte de comandos referentes a los usuarios, así que sigamos aprendiendo acerca de los maravillosos y geniales comandos Linux.

El cajón de los comandos Linux es una guía de referencia rápida para todos los usuarios Linux que desean aprender los comandos de este gran SO. Los comandos se dividen en 15 categorías, lo cual nos permite tener un mayor entendimiento acerca de que comando utilizar en una específica situación. El agradecimiento total al creador de esta guía +Bobbin Zachariah.

Esta guía puede ser utilizada ya sea para usuarios nuevos o avanzados, proveyendo el mejor esfuerzo para dar a conocer los comandos Linux más relevantes. 

Así que empecemos con la 3ª parte de los comandos referentes a los usuarios.


$ userdel


El mantenimiento de los usuarios en un servidor significa agregarlos, modificarlos y eliminarlos. Cuando un usuario ya no se necesita en el sistema por cualquier razón, podemos eliminarlo para evitar algún tipo de violación de seguridad. En Linux tenemos el comando userdel para hacer el proceso de eliminación de usuarios.


¿Qué es userdel?
Userdel es una utilidad de nivel bajo para la eliminación de los usuarios, (para Debian, por lo general se utiliza el comando deluser.) Userdel buscará los archivos de cuentas del sistema tales como /etc/password y /etc/group; luego este eliminará todas las entradas relacionadas a dicho usuario, obviamente el nombre del usuario debe existir para poderlo borrar.



¿Cómo utilizar userdel?
Ya que userdel modificará los archivos de cuentas en el sistema, necesitamos privilegios de súper usuario para ejecutarlo, de lo contrario, tendremos un mensaje de error similar a este: "only root can do that" una vez dado los privilegios necesarios, podemos borrar un usuario con solo escribir  userdel desde la consola.  Aquí una muestra utilizando  userdel:

 o


Como vemos en la imagen de arriba, no podemos eliminar un usuario sin privilegios de root, si estamos con permisos de súper usuario el sistema no nos dará ningún error, lo que significa que el usuario se ha eliminado correctamente.
 
- Eliminar completamente el directorio home del usuario.

Usando userdel sin opciones, sólo eliminará el usuario. El directorio de inicio del usuario todavía permanecerá en la carpeta /home.


Cuando entramos en la carpeta /home, seguimos viendo  la carpeta "ironman" con UID  1002. Cuando es creado el usuario por lo general tiene un mismo nombre de grupo y de usuario. 1002 fue el UID y GID del nombre de usuario y el nombre del grupo  "ironman".

Para remover completamente la carpeta home del usuario en el proceso de eliminación, podemos utilizar la opción -r; esta opción eliminará también algún spooling de correo del usuario en caso de existir.

- Forzar la eliminación de un usuario.
 

Con la opción -f podemos forzar la eliminación de un usuario, esta opción borrará un usuario, incluso si el usuario todavía esta dentro del sistema Linux. Echemos un vistazo a este ejemplo:

La captura de pantalla de arriba nos muestra que el usuario "ironman" se encuentra dentro del sistema. Está marcado por el proceso 6218, que es el proceso SSHD. Pero cuando corremos el comando userdel -f ironman  sólo nos muestra la información de que el usuario está conectado. El comando en sí deberá tener éxito. Si vemos el contenido del archivo /etc/passwd con el comando cat, no vemos más el usuario "ironman" allí. En el directorio de casa todavía existen pero el dueño se cambia.


Una cosa que debemos saber es que, userdel con el parámetro -f no rompe la conexión SSH. Así que el usuario en realidad se mantendrá  conectado y activo aun si  ya no existe, pero si éste cierra sesión, y quiere de nuevo entrar al sistema no podrá  ya que  ha sido eliminado; así que esta opción es peligrosa de utilizar, ya que puede llevar a tu sistema a un estado de inconsistencia. 


Conclusión.
Userdel es una herramienta para eliminar un usuario dentro del sistema Linux. Userdel también usa la misma base de datos del comando deluser, un script perl para borrar un usuario. Como de costumbre, podemos escribir man userdel para explorar con más detalles acerca de este comando en la consola.


$ adduser


De este solo veremos una pequeña explicación, ya que anteriormente vimos el comando useradd.

¿Cuál es entonces la diferencia entre adduser y useradd?
Simple, useradd es un binario nativo compilado con el sistema, sin embargo adduser es un script de perl el cual utiliza la base de datos de los binarios de useradd.

adduser tiene una interacción más amigable  más sin embargo no hay alguna característica que diferencie a ambos.


$ usermod


El comando Linux "usermod" se utiliza para modificar la información de los usuarios, los archivos que podrían verse afectados en esta operación son /etc/passwd (información de la cuenta de usuario), /etc/shadow (información  de seguridad de la cuenta) y /etc/group (información de grupo). Solo  como súper usuario podemos utilizar este comando.

La sintaxis básica de este comando es la siguiente:


En esta parte del blog, vamos a ver algunos ejemplos de los usos del comando "usermod", que nos ayudarán a conocer estas opciones en detalle. En primer lugar, podemos crear un usuario de "prueba" utilizando useradd. Para llegar a ver la información del usuario, podemos usar el comando "id"


- Ejemplo 1: Cambiando el directorio "home" del usuario "prueba"

Supongamos que el directorio actual del usuario "prueba" es /home/prueba y queremos cambiarlo a un directorio existente que será /home/nuevaprueba sin copiar el contenido de /home/prueba, lo hacemos con el siguiente comando:

Si también queremos mover el contenido de /home/prueba (si el nuevo directorio no existe lo crearemos y moveremos), necesitamos usar el parámetro -m


- Ejemplo 2: Agregando grupos a un usuario.

Cuando un usuario es agregado utilizando el comando useradd sin especificar grupo, se creará un grupo con el mismo nombre del usuario que hayamos hecho; este es el grupo primario del usuario. Podemos agregar más grupos a dicho usuario utilizando la opción -G, veamos:

Supongamos que necesitamos agregar el grupo "desarrolladores" al usuario "prueba", escribiremos:


Notemos que si habíamos agregado este usuario a cualquier otro grupo anteriormente (otro que no sea el primario), ese se removerá con el comando de aquí arriba.
Así que si queremos preservar los grupos actuales del usuario y agregar un grupo más necesitamos usar la opción -aG, así: 


- Ejemplo 3: Cambiando el grupo primario de un usuario.

Si queremos agregar un grupo como primario a un usuario, hacemos lo siguiente:


- Ejemplo 4: Bloqueando y desbloqueando usuarios.

En algunos casos probablemente necesitemos temporalmente bloquear una cuenta, para esto utilizamos el parámetro -L, esto pondrá un ¡!  en la contraseña cifrada, que en efecto estará inhabilitada.

Y para desbloquear utilizamos la opción -U el cual obviamente removerá ¡! a la contraseña cifrada.


- Ejemplo 5: Cambiar fecha de expiración de una cuenta.

Podemos usar el siguiente comando que inhabilitará la expiración de la cuenta "prueba" el 2015-12-14.


- Ejemplo 6: Cambiando nombre de usuario y contraseña.

Para cambiar el nombre de usuario, lo hacemos utilizando la opción -l



Y para el cambio de contraseña hacemos lo siguiente:


- Ejemplo 7Cambiando la terminal de un usuario.

La consola proveída a un usuario puede ser cambiada; teniendo en cuenta que para el nuevo usuario la "nueva prueba" en /bin/bash

Esto es todo referente al comando usermod para mas información acerca de este comando dirigirnos a help, man o info en la consola.





Saludos especiales a tod@s espero este aporte pueda ser de su ayuda. Si les fue útil compartan y comenten.