Durante la instalación, comentamos que se iba a crear un usuario, y si habéis hecho los ejercicios precedentes habréis visto que tenemos un montón de usuarios creados. Todo eso, lo ha hecho el instalador, para permitirnos organizar permisos, en este post veremos como podemos crear grupos y usuario según nuestras necesidades

El sistema de permisos de ficheros en linux se estructura controlandolo por usuarios, grupos y otros, por lo que cuando creamos usuarios automaticamente se crea un grupo con el mismo nombre, pero nosotros vamos a poder cambiar ese comportamiento para que pertenezca a otro grupo.

Vamos a ver como podemos crear usuarios. Ante todo abrimos un terminal virtual y nos logonamos como root , ya que nuestro usuario no tiene permisos suficientes.

La sintaxis completa del comando implicado es:

addusr [-c comentario] [-d home] [-e fecha] [-f dias] [-g grupo] [-G lista de grupos] [-m [-k template] | -M] [-n] [-o] [-p passwd] [-r][-s shell] [-u uid] usuario

Aunque la mayoria de veces podremos utilizar una forma mucho mas sencilla

addusr usuario1

Esto nos creara un usuario con login usuario1 y con una contraseña…generada aleatoriamente y que no conocemos, por lo que no podremos utilizarlo a menos que hagamos

passwd usuario1

y le indiquemos una contraseña conocida.

Usuarios y grupos

En linux, todos los usuarios deben pertenecer a un grupo, es por eso, que al crear el usuario, se crea un grupo con el mismo nombre que el usuario, a menos que nosotros le asignemos un grupo concreto y previamente creado.

Podemos crear un grupo de usuarios con un sencillo

groupadd amigos

y a continuación podemos crear un usuario y añadirlo a este grupo con

adduser -g amigos usuario_a

si el usuario ya esta creado y lo queremos añadir al grupo, podemos hacer

gpasswd -a usuario1 amigos

el comando gpasswd tiene las siguientes opciones:

-a USER para añadir un usuario al grupo

-d USER para eliminar un usuario del grupo

-M <USER1,USER2,…> definir todos los miembros de un grupo

Si necesitamos saber todos los grupos a los que pertenece un usuario, utilizaremos

groups usuario1

Usuarios y directorios

Cuando un usuario se logona, el sistema arranca un shell para él, en su directorio de inicio, con lo que todo usuario debería tener un directorio de inicio, y, al crear el usuario, se crea automáticamente un directorio bajo «home» con el mismo nombre que el usuario, y se copia en el mismo, el contenido del directorio /etc/skel. Si tenemos que cambiar ese comportamiento, p.ej. para que no cree el directorio,o que asigne uno distinto, podemos utilizar la opción -m y le decimos el directorio a asignar, o con -M para que no cree ni asigne ningún directorio

Osea que si queremos que nuestro nuevo usuario, pepito, tenga como carpeta raiz /home/usuarios, podriamos crearlo con

useradd -d /home/usuarios  pepito

si la carpeta no existe, se creará automáticamente, y si en tu distribución no la crea, puedes utilizar la opción -m para forzar la creación.

Naturalmente, con una estructura de este tipo, todos los usuarios no pueden ser propietarios de la carpeta, por lo que posiblemente deberías añadir los usuarios a un grupo, para poder gestionar los permisos por el grupo.

Cuando borremos un usuario, si queremos que se borre su carpeta, ojo con las compartidas, podemos hacerlo todo a la vez con la opcion -r

userdel -r  pepito

Usuarios y shell

Aunque reconozco que para un «Empezando con linux» no es necesario, pienso que tambien podriamos comentar otra de las opciones disponibles cuando creamos un usuario. Concretamente, me refiero a la posibilidad de indicar el shell que utilizara ese usuario. Aunque nuestra distribucion asignara un estandar que normalmente no hace falta modificar, puede que deseemos crear algun usuario que no deba conectarse desde un terminal. Para eso, existe la siguiente posibilidad

useradd -s /bin/false -r -M elUsuario

o

useradd -s /usr/sbin/nologin -r -M  el Usuario

Fijaros que lo que hacemos con la opcion -s es asignarle un shell especial, la -r nos permite evitar caducidad, y con la -M le decimos que no queremos directorio. En funcion de la utilidad que le queramos dar al usuario, podeis modificar lo que sea necesario, (por ejemplo, crear directorio,…)

El archivo /etc/passwd

Cuando hablamos de usuarios, hemos de hablar de este archivo que es donde linux guarda los usuarios que vamos creando, con el formato

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:daemon:/sbin:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
uucp:x:10:14::/var/lib/uucp/taylor_config:/bin/bash
migarcia:x:500:100:Miguel Garcia:/home/migarcia:/bin/bash

Cada dato va separado del siguiente por «:» y el contenido es:

  • login del usuario
  • x En este espacio deberia estar la password, pero estas se guardan realmente en /etc/shadow, ya que este archivo lo ve todo el mundo, lo que es un peligro…
  • UID es el numero de identificacion del usuario, los numeros bajos se reservan habitualmente para usuarios del sistema y a partir del 500 o 1000 se iran asignando a los usuarios que vamos dando de alta. Dos usuarios pueden tener el mismo UID
  • GID es el numero de identificacion de grupo principal
  • Comentario, normalmente ocupado por el numbre del usuario, aunque podemos utilizarlo para guardar cualquier cadena de texto
  • Directorio home
  • shell a utilizar

El archivo /etc/group

En este archivo se guardaran los grupos que vayamos creando,

root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:
tty:x:5:
disk:x:6:
lp:x:7:
wwwadmin:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:cyrus
migarcia:x:500:migarcia
amigos:x:501:usuario1,usuario2

Su estructura también es muy sencilla

  • Nombre del grupo
  • contraseña encriptada
  • GID identificador del grupo
  • lista de usuarios que pertenecen al mismo

 

El fichero /etc/shadow

En este fichero se guardan las contraseñas de los usuarios codificadas con la estructura

usuario : contraseña_cifrada : d1 : d2 : d3 : d4 : d5 : d6 : reservado
  • usuario: es el login o nombre de usuario (el mismo que en /etc/passwd)
  • x: contraseña:  la contraseña  cifrada o !! si no hemos creado contraseña
  • d1: nº de días desde el 01/01/1970 hasta último cambio de la contraseña.
  • d2: nº de días que deben pasar hasta que se pueda cambiar la contraseña.
  • d3: nº de días que deben pasar para que caduque la contraseña y deba ser cambiada.
  • d4: nº de días de antelación con los que avisará el sistema de la caducidad de la contraseña.
  • d5: nº de días con contraseña caducada antes de deshabilitar la cuenta.
  • d6: nº de días desde el 01/01/1970 y el día en que se deshabilitó la cuenta.
  • reservado: campo reservado

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.