Gestión de usuarios y grupos

Enlace a: Usuarios y grupos en red Lechuga

https://wiki.archlinux.org/index.php/users_and_groups

Gestión de usuarios

Usuario estandar, con home y shell
useradd --create-home [LOGIN] --uid [UID] --gid [GID o NOMBRE]

Usuario para un servicio o control de acceso, sin home ni shell
adduser --disabled-login --no-create-home [LOGIN] --uid [UID] --gid [GID o NOMBRE]

El hecho de que no pueda hacer login se define por una exclamación en el campo de contraseña del archivo /etc/shadow

Ejemplo de usuario para un servicio, sin derecho a login
nube_lechuga:x:1006:1006:Servicio de nube o compartidos:/home/nube_lechuga:/usr/bin/nologin

Cambiar clave a un usuario
passwd [options] [LOGIN]

Eliminar un usuario del sistema y su home
userdel --remove [LOGIN]

Cambiar el uid de un usuario
usermod -u <NEWUID> <LOGIN>

Cambiar el nombre de usuario
usermod -l login-name old-name

Gestión de grupos

Añadir un usuario al grupo
gpasswd --add [user] [group]
newgrp

Eliminar un usuario del grupo
gpasswd --delete [user] [group]

Crear un grupo
groupadd --gid [GID] [group]

Cambiar el gid de un grupo
groupmod -g <NEWGID> <GROUP>

A qué grupos pertenece un usuario
groups <usuario>

Copiar usuarios de un host a otro

el servidor srv.lechuga.eu es la madre de todos los usuarios y pertenencias a grupos

Generar archivos para añadir usuarios y grupos

TODO: Meter en srv un comentario a todos los uaurios con UID > 1000, para que se exporte bien

ejecutar en srv el siguiente script


# Generamos usuarios y sus 'comments'
cat /etc/passwd | awk -F ':' '$3 > 1000 {print "useradd --no-create-home "$1" --uid "$3" --shell "$7" --home "$6" --comment \"Usuarios añadido por script\""}' > /mnt/intercambio-lechuga/genera_usuarios.sh
cat /etc/passwd | awk -F ':' '$3 > 1000 && $5 != "" {print "usermod "$1" --comment \""$5"\""}' >> /mnt/intercambio-lechuga/genera_usuarios.sh
chmod 770 /mnt/intercambio-lechuga/genera_usuarios.sh

# para crear los grupos:
cat /etc/group | awk -F ':' '$3 > 1000 {print "groupadd --gid "$3" "$1}' > /mnt/intercambio-lechuga/genera_grupos.sh
chmod 770 /mnt/intercambio-lechuga/genera_grupos.sh

# para generar las membresias
cat /etc/group | awk -F ':' '$3 > 1000 && $4 != "" {print "gpasswd --members "$4" "$1}' > /mnt/intercambio-lechuga/genera_membresias.sh
chmod 770 /mnt/intercambio-lechuga/genera_membresias.sh
 

Luego, en el host de destino, ejecutar:


wget -O genera_usuarios.sh https://srv-internet.lechuga.eu:4430/nubes/intercambio-lechuga/ficheros/genera_usuarios.sh --user=intercambio-lechuga --ask-password
chmod u+x genera_usuarios.sh

wget -O genera_grupos.sh https://srv-internet.lechuga.eu:4430/nubes/intercambio-lechuga/ficheros/genera_grupos.sh --user=intercambio-lechuga --ask-password
chmod u+x genera_grupos.sh

wget -O genera_membresias.sh https://srv-internet.lechuga.eu:4430/nubes/intercambio-lechuga/ficheros/genera_membresias.sh --user=intercambio-lechuga --ask-password
chmod u+x genera_membresias.sh