Manejando usuarios y grupos

De Wikillano
Saltar a: navegación, buscar

Contenido

Como el Kernel entiende los usuario y grupos

El kernel de Linux no distingue los usuarios por su nombre sino por su UID (user id) y GUID (group id) esta asociación la realiza mediante el fichero /etc/password y para los grupos /etc/group

El fichero /etc/password

ballano:x:500:500:david ballano:/home/ballano:/bin/bash
  • ballano

ballano es el usuario

  • x

Significa que el password está encriptado en el fichero /etc/shadow sino deberiamos tener una cadena ecriptada que sería el password

  • 500

UID

  • 500

GUID

  • david ballano

Es un campo de descripción si queremos que automaticamente este campo tenga el username pondremos "&"

  • /home/ballano

Este es el home del usuario

  • /bin/bash

La shell utilizada por el usuario, si la dejamos en blanco el sistema le pondre /bin/sh que es un link a /bin/bash

El fichero /etc/group

users:x:100:ballano,david
  • users

el nombre del grupo

  • x

Significa que el password de grupo esta encriptado en /etc/gshadow

  • 100

GUID

  • ballano,david

Son los usuarios que pertenecen al grupo users separados por coma.

Password en grupos

Imaginemos que como usuario normal necesitamos crear un fichero con un grupo diferente del nuestro, para ello tenemos el comando newgrp que cambia momentaneamente nuestro grupo principal al que le pongamos

newgrp pedro

nos pedirá un password

con gpassword podemos asignar la contraseña al grupo

Esto está muy bien pero solo podremos asignar un password a este grupo, y tendremos que darlo a todo el mundo que necesite realizar algo, para este caso es mejor utilizar el bit SGID pasar de ir poniendo passwords a los grupos.

Ficheros Login especiales

  • /etc/nologin

Si lo utilizamos como shell en una cuenta de usuario , este programa mostrará un mensaje de cuenta no disponible, si /etc/nologin.txt existiera mostraría el contenido del mismo en vez del mensaje default.

  • /bin/false

Si lo utilizamos como shell en una cuenta de usuario el usuario no podrá logarse, no dará ningún mensaje, es como si el usuario no existiera, es la mejor opción.

  • /etc/motd

message of the day, Una vez el usuario entra en el sistema el contenido del motd se muestra en pantalla,


Añadiendo usuarios

useradd -m -d /home2/ballano -u 1001 -k /etc/skel_custom -g 1001 -c "David Ballano"
  • -m

Debian por defecto no crea un directorio home, por eso ponemos -m

  • -d

De esta manera podemos especificar otro home diferente del default

  • -u

UID

  • -k

Especificamos la plantilla de creacion del usuario

  • -g

GID

  • -c

Campo descripción


Otras opciones importates son:

  • -G

Añade un grupo secundario al usuario a parte del principal (esto se puede hacer posteriormente con usermod)

  • -s

Shell del usuario

  • -e

Expire date, fija la fecha en la que el usuario expirará después de esta fecha el usuario se deshabilita un "*" en el campo password cd /etc/passwd

  • -f

Fija los dias que el usuario podrá seguir logeando una vez la contraseña haya expirado. el valor "0" deshabilita la cuenta cunado el password expira.


El comando useradd tiene unos valores por defecto, los podemos comprobar si ponemos

[root@box ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

para modificar estos valores podemos hacer lo siguiente, por ejemplo el interprete de comandos

useradd -D -s /bin/ksh

Añadiendo Grupos

groupadd admins

Añadimos el grupo admins

groupadd -g 1002 usuarios

Añadimos el grupo usuarios con el GID 1002


Modificando las cuentas de usuario

Con usermod podemos modificar las cuentas creadas, la mayoría de opciones son identicas a las que utilizamos con useradd

  • -c
  • -d
  • -e
  • -f

otras opciones son:

  • -L

Lock, Bloquea la cuenta de usuario alterando el /etc/shadow cambiando el password encriptado por "!"

  • -U

Unlock, desbloquea la cuenta de usuario borrando la "!"

Otra manera de bloquear y desbloquear las cuentas de usuario es con el comando passwd y las opciones -u -l ( siempre que utilicemos /etc/shadow )


Eliminando Usuarios

userdel -r ballano

Gracias a la opción -r borramos también el home directory


Permisos de shadow y passwd

/etc/passwd
RedHat -rw-r--r-- 644
Debian -rw-r--r-- 644
/etc/shadow
Redhat -r-------- 400
Debian rw-r------ 640

como se puede observar Redhat es más restrictivo


Conversión Passwd

Hace unos años algunos linux no llevaban la suite shadow instalada, por ese motivo los passwords estaban encriptados en el fichero /etc/passwd donde podian ser vistos por cualquiera. Para migrar al /etc/shadow, después de instalar el paquete correspondiente, era utilizar las siguientes herramientas para convertir las passwords al nuevo formato.

  • pwconv

para convertir a /etc/shadow

  • pwunconv

Invierte el proceso remplazando la x del /etc/passwd con el password encriptado.

  • grpconv
  • grpunconv

Realiza el mismo proceso que los anteriores pero para grupos, pero contra /etc/group y /etc/gshadow

  • pwck

Este comando lo podemos utilizar para comprobar la integridad de las cuentas.

Validez de los Passwords

El comando para poder modificar diferentes características como el número de dias que un password es valido es chage

algunas de sus opciones:

  • -m

mindays, cuento tiempo despues de cambiar la password el usuario puede volver a cambiarla.

  • -M

maxdays, el número de dias que el password es valido.

  • -W

warndays,Número de días de aviso antes de que expire la contraseña

para ver estos valores y alguno más podemos hacer lo siguiente:

[ballano@box ~]$ chage -l ballano
Último cambio de contraseña					:nov 19, 2008
La contraseña caduca					: nunca
Contraseña inactiva					: nunca
La cuenta caduca						: nunca
Número de días mínimo entre cambio de contraseña		: 0
Número de días máximo entre cambio de contraseñas		: 99999
Número de días de aviso antes de que expire la contraseña	: 7