Mostrando entradas con la etiqueta usuarios. Mostrar todas las entradas
Mostrando entradas con la etiqueta usuarios. Mostrar todas las entradas

viernes, 30 de enero de 2015

Ver información sobre los usuarios

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Continuamos con la gestión de usuarios con un comando que es una implementación especial del comando useradd.

adduser
Sirve para añadir usuarios nuevos al sistema de forma interactiva, es decir, se nos van preguntando en tiempo real los datos que queremos asignar al nuevo usuario. Veamos una captura de pantalla de este comando.



Como se puede ver hemos añadido el usuario Pakito al sistema; automáticamente le asigna un GID de grupo (aquí conté que son el UID y el GID), nos informa de la creación de su directorio home según los criterios fijados en /etc/skel, nos pide una contraseña para este usuario y, a continuación, nos da la oportunidad de añadir una serie de datos descriptivos que pueden sernos de mayor o menor utilidad, pero ahí están. Emplear adduser o useradd para añadir usuarios al sistema será cuestión del criterio de cada uno.

  • adduser --ingroup users pakito: añadiría al usuario pakito estableciendo users como su grupo principal.
  • adduser pakito cdrom: añade al usuario pakito al grupo cdrom.
users
Muestra un listado de los usuarios logados en el sistema en ese momento.

id
Sirve para mostrar el UID y el GID de usuarios y grupos.
  • id / id -a: en ambas formas, muestra el UID y los GID (si pertenece a más de un grupo) del usuario actual.
  • id pakito: da información sobre el UID y el GID de pakito y las GID de sus grupos.
  • id -g: muestra solo los GID de los grupos efectivos (activos en ese momento).
  • id -G: muestra solo los GID de los grupos reales y efectivos (activos en ese momento y el resto de los existentes).
  • id -nG pakito: lista a qué grupos pertenece el usuario pakito.
  • id -u: muestra solo los UID de los usuarios efectivos (activos en ese momento).
finger
Comando para mostrar todos los datos registrados de un usuario.


Como se ve en la captura, al usar finger con el modificador -s podremos ver datos como el nombre del usuario (paco), el nombre de acceso al sistema (convenientemente "censurado" por un servidor), la terminal desde la que opera (Tty), el tiempo que ha estado sin operar (Idle), la hora de inicio de sesión, la localización de la oficina (office) y su teléfomo (Office Phone). Estos últimos son datos que podríamos haber incluido al crear el usuario con adduser.

Hay otra forma de ver información de un usuario, y es usando finger y su nombre, sin más.


Como vemos, los datos que asignamos al usuario pakito aparecen aquí reflejados, además de la Shell utilizada y si tiene o no correos pendientes.

Y no tiene mucho que ver, pero hace pocos días nos dejó Edgar Froese, que como miembro de Tangerine Dream podemos considerar como uno de los padres de la música electrónica espacial, género que en su momento me tuvo bastante enganchado. En reconocimiento, valga este pequeño homenaje, la obra que encumbró a su banda, "Phaedra".


viernes, 3 de octubre de 2014

Creación de usuarios

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Vamos a empezar con una serie de entradas dedicadas a la creación, gestión y supresión de usuarios, algo crucial cuando de un sistema GNU/Linux se trata. Para ello empezaremos diseccionando el principal comando de creación de usuarios como es useradd.

useradd
Para crear un nuevo usuario llamado pepe teclearemos sudo useradd pepe.

  • useradd -c "técnico administrativo" pepe: crea el usuario pepe añadiéndole la descripción que tenemos entrecomillada, y que se denomina campo GECOS. Se usa para proporcionar información extra sobre el usuario relativa a su puesto, ocupación, nombre completo, etc.
  • useradd -d /house/pepe: indica un directorio home alternativo (en este caso sería house) para el usuario pepe. Este directorio ha de existir previamente y después habría que hacer a pepe propietario del mismo a través del comando chown.
  • useradd -e 2015-12-31 pepe: crea el usuario pepe, que será desactivado en la fecha indicada.
  • useradd -f 16 pepe: indica el número de días en que la cuenta se bloqueará por falta de uso.
  • useradd -g grupo1 pepe: crea un grupo primario, aquí denominado grupo1, (grupo principal que un usuario debe obligatoriamente tener asignado) para el usuario pepe, el cual debe existir previamente.
  • useradd -G empleados contables pelotas pepe: especifica los grupos (aquí denominados empleados, contables y pelotas) a los que pertenecerá el recién creado usuario pepe. Dichos grupos deben existir previamente.
  • useradd -m pepe: crea el directorio por defecto home para el usuario pepe.
  • useradd -M pepe: no crea el directorio por defecto home durante la creación del usuario pepe.
  • useradd -n pepe: añade un grupo con el mismo nombre del usuario creado.
  • useradd -N pepe: no crea un grupo con el mismo nombre del usuario.
  • useradd -r pepe: convierte al nuevo usuario pepe en usuario de sistema (que solo gestionan determinados servicios como red, impresoras...).
  • useradd -s /bin/Bash: crea el usuario pepe con la shell Bash por defecto.
  • useradd -u UID pepe: crea el usuario pepe con el UID que le indiquemos.
  • useradd -D: tecleando esto obtenemos los valores por defecto de useradd en la creación de usuarios: los de las variables SHELL (ruta  de la consola por defecto), HOME (ruta del directorio home por defecto), SKEL (directorio a utilizar para proporcionar los contenidos por defecto de los nuevo directorio home de los usuarios), GROUP (la ID por defecto del grupo), INACTIVE (el número máximo de días tras los que se puede cambiar la contraseña una vez haya expirado), y EXPIRE (fecha de expiración por defecto de las cuentas de los usuarios).
  • useradd -D -d /home/paco/practicas: establece la ruta /home/paco/practicas como la ruta por defecto del directorio home para todos los usuarios nuevos a partir de ese momento.
  • useradd -D -e 2015-12-31: establece la fecha indicada como la fecha de expiración de todas las cuentas creadas a partir de ese momento.
  • useradd -D -f 16: especifica que faltan 16 días para la desactivación de la cuenta una vez expirada la contraseña. se aplica a todos los usuarios nuevos a partir de ese momento.
  • useradd -D -g grupo1: especifica el grupo por defecto de los usuarios nuevos a partir de ese momento.
  • useradd -D -s /bin/Bashespecifica que la shell por defecto de los usuarios nuevos será Bash a partir de ese momento.
  • useradd -p `echo 1234 | openssl passwd -crypt -stdin `pepe: crea el usuario pepe con la contraseña de acceso 1234. El comando encripta la contraseña y la redirige al parámetro -p de useradd. No obstante, lo adecuado es crear la contraseña después de creado el usuario, usando el comando passwd.
Para terminar, observemos un ejemplo práctico de creación de usuario con la consiguiente explicación de cada parámetro:

useradd -mNr -s /bin/bash -g casa -c "José Luis Pérez" pepelu

Explicación:

useradd (añade usuario) -m (crea el directorio home por defecto del nuevo usuario) -N (no crea el directorio con el mismo nombre que el nuevo usuario) -r (califica al nuevo usuario como de sistema) -s bin/bash (establece la shell bash como consola por defecto del nuevo usuario) -g casa (establece que el nuevo usuario pasa a formar parte del grupo casa, ya existente) -c "José Luis Pérez" (añade ese comentario descriptivo al campo GECOS) pepelu (nombre del nuevo usuario).

Creo que para ser un solo comando no está nada mal. Hay más opciones y solo tienen que utilizar las herramientas de consulta para dar con ellas. Y, bueno, no tiene mucho que ver, pero estos días he recordado esta canción de Indigo Girls llamada "Galileo", así que concluiremos el post con ella.


miércoles, 24 de septiembre de 2014

Gestión de usuarios: preliminares

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

En este post vamos a hablar de algunos términos que ya se han citado en otras entradas, de modo que lo utilizaremos como una suerte de recordatorio que nos ayudará a concatenar con lo que vendrá después: la creación y gestión de usuarios y grupos. Recordemos que GNU/Linux es un sistema operativo multiusuario, esto es, pensado para que muchas personas trabajen juntas compartiendo datos. Precisamente comenzamos hablando de qué tipos de usuarios existen en un sistema Linux.
  • Usuarios normales: disponen de privilegios parciales sobre los recursos que tengan asignados.
  • Usuarios de sistema: son los encargados de los llamados daemon del sistema, que son procesos ejecutados en segundo y no controlados directamente por el usuario. Son propietarios de algunos de estos procesos y directorios.
  • Superusuario o usuario ROOT: es el que tiene el control total sobre el sistema. Su UID y GID siempre tienen valor cero.
  • UID: número identificador de usuario, el cual puede estar en la franja que va desde el 0 hasta el 65535.
  • GID: número identificador de grupo, el cual puede estar en la franja que va desde el 0 hasta el 65535.
A continuación, algunos comandos que conviene comocer y/o dominar.

su
Este es un comando para logarnos en el sistema como root.

  • su usuario2: de esta forma nos estaríamos logando como el usuario2, siempre que conozcamos su contraseña. De esta forma accederíamos a su directorio HOME.
exit
Nos sirve para salir del modo root.

sudo
Comando ya conocido que nos permite ejecutar órdenes por teclado como si fuésemos root.
  • sudo passwd root: para cambiar, mediante el comando passwd, la contraseña de root.
  • sudo nautilus: para acceder al navegador de archivos Nautilus como usuario root ( y así poder manipular archivos y directorios como se nos antoje sin las restricciones del usuario corriente).
visudo
Comando que nos permite editar automáticamente el fichero /etc/sudoers, donde podemos indicar qué usuarios podrán ejecutar órdenes como si fuesen root a través del comando sudo.

w [usuario]
Sirve para listar los usuarios de un sistema y los datos de su sesión.

write [usuario]
Sirve para comunicarse con otro usuario (una especie de mensajería instantánea).

wall [mensaje]
Para enviar mensajes a todos los terminales del sistema.

mesg [y|n]
Activa o desactiva la facultad de recibir mensajes.

Valga este pequeño post como antesala de lo que nos espera, si el tiempo libre y las fuerzas lo permiten, en relación a la gestión de usuarios y grupos. Y para grupo en el que tenía grandes expectativas, que se han visto deshechas con su temprana disolución, los texanos Fair To Midland. Parecían llamados a ser una de las grandes bandas de rock de comienzos de siglo, pero tendremos que fijar la vista en otra distinta. "Musical chairs" nos recuerdan lo grandes que pudieron ser.


miércoles, 16 de julio de 2014

Archivos de gestión de usuarios y grupos

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

A medida que vayamos adentrándonos en nuestro sistema Linux la gestión de usuarios y grupos se convertirá en un asunto capital. Antes de entrar a analizar los comandos que nos permiten crear y gestionar usuarios y grupos vamos a describir los archivos que intervienen en dichas operaciones.

/etc/skel/
Directorio donde se almacenan los archivos que se cargarán al crear un nuevo usuario.

/etc/default/useradd
Este es el fichero donde se guardan los ajustes de usuario.

/etc/logins.defs
Archivo que controla la vigencia de las contraseñas. Vamos a destacar tres variables de entorno relevantes para este aspecto:
PASS_MAX_DAYS: establece la vigencia de las contraseñas en nº de días.
PASS_MIN_DAYS: establece la vigencia mínima en nº de días de una contraseña. Si su valor es cero podremos cambiarla cuando lo queramos.
PASS:WARN_AGE: establece el nº de días a partir del cual se avisará al usuario de la caducidad de su contraseña.

Recordemos que sobre las variables de entorno hablamos aquí.

/etc/passwd
Archivo editable (como root) con la lista de usuarios del sistema. Debería tener permiso de lectura para todos pero solo de escritura para root. Veamos un ejemplo de línea de este fichero:

daemon:x1:1:daemon:/usr/sbin:/bin/sh

Desglose:

daemon: es el nombre de la cuenta.
x: es la clave encriptada.
1: es el UID (User IDentification, identificador de usuario). El UID de valor 0 pertenece al administrador. Por debajo de 100 es de sistema; por encima, de los usuarios.
1: es el GID (Group IDdentification, identificador de grupo).
daemon: es el GECOS o campo destinado a un comentario descriptivo del usuario o grupo.
/usr/bin: directorio del usuario.
/bin/sh: terminal por defecto.

Si quisiéramos crear un usuario manualmente sin recurrir a los comandos al uso, tendríamos que añadir al fichero /etc/psswd una línea similar a la que sigue:

manuel::523:100:ManuelPerezAdministrativo:/home/manuel:bin/Bash

Así, habríamos creado un usuario cuya cuenta recibe el nombre de manuel, con el UID 523, el GID 100, con ManuelPerezAdministrativo como campo GECOS o de comentarios, siendo /home/manuel su directorio de usuario y /bin/Bash su shell por defecto. No tendría contraseña, la cual había que crear con el comando passwd.

/etc/group
Archivo con la lista de grupos y los miembros de cada uno de ellos. Este sería un ejemplo de contenido:

daemon:x:1:<otro>

Desglose:

daemon: nombre del grupo; no puede repetirse y ha de tener un máximo de ocho caracteres.
x: contraseña que permite acceder a un usuario con el comando newgrp (las contraseñas ocultas se sustituyen por una x y se almacenan en el fichero /etc/gshadows).
1: GID, identificador de grupo, que debe ser único.
<otro>: aquí vendrán los nombres de los usuarios miembros del grupo.

Ejemplo de línea añadida manualmente: Compras::1020:Pablo:Silvia:Pedro:Sergio.

/etc/shadow
Archivo donde se almacenan las contraseñas de los usuarios y que solo es accesible como root. Ejemplo de contenido:

daemon:*:14889:0:99999:7:::

Desglose:

daemon: nombre de usuario.
*: contraseña.
14889: fecha de la última modificación de contraseña.
0: nº de días que tardará la contraseña en expirar.
99999: periodo de aviso en días de expiración de contraseña.
7: nº de días que trascurren desde que expira la contraseña hasta que se desactiva la cuenta.
Fecha de desactivación de la cuenta (en caso de proceder).

El campo que lleve un carácter ¡ o un asterisco * indica cuanta bloqueada. Si lleva los caracteres !! o el asterisco * es una cuenta no asignada.

/etc/gshadow
Es el archivo donde se almacenan las contraseñas para los grupos y solo es accesible para root.

Finalizamos con un par de comandos relacionados con todo lo que hemos visto:

grpconv
Sirve para crear el archivo /etc/gshadow y cambiar las contraseñas del archivo /etc/group por una x.

grpunconv
Revierte el resultado de grpconv.

En otro post hablaremos más en profundidad de la creación y gestión de usuarios y grupos. Mientras, escuchemos a este grupo progresivo noruego, Airbag, interpretando "Redemption".