= usuarios y grupos
~~NOTOC~~
== información usuario
* para saber datos y grupos del usuario: id
* nombre del usuario: whoami
== usuarios en línea
* usuarios conectados - terminal: who
* procesos asociados a un usuario: ps -U
* eliminar procesos asociados a un usuario: sudo pkill [-9] -u
/via: [[https://www.simplified.guide/linux/user-force-logout]]
== cambio de contraseña
* cambiar contraseña propia o si tienes privilegios, la contraseña de otro usuario: passwd []
* no funciona en Debian: echo 1234 | passwd --stdin jordi
* se puede añadir ''-m'' para que guarde la contraseña en formato MD5 en lugar de DES: echo "jordi:1234" | chpasswd
* establece complejidad de las contraseñas a usar en el sistema: ''/etc/security/pwquality.conf''
=== chage (CHange AGE)
* modificación datos, expiraciones, inactividad
* comprobar estatus cuenta: chage -l
* forzar cambio de contraseñachage -d 0
* passwd -e
== grupos
* crear un grupo: groupadd
* añadir nuevo usuario a otros grupos: useradd -G
* añadir/cambiar el grupo principal de un usuario: usermod -g
* añadir un usuario existente a un grupo existente: usermod -a -G
* establece como principal el de manera temporal, útil para no reinicar sesión y aplicar la pertenencia (según comando anterior): newgrp
* añadir/cambiar el grupo principal de un usuario existente: usermod -g
* elimina al usuario del grupo, no elimina ni al usuario ni al grupo: deluser
== usuarios
=== adduser/useradd
useradd --comment "comentario" --home-dir /home/user --create-home --expiredate 2020-20-20 --uid 6666 --user-group --shell /bin/bash
=== deluser
userdel -r
=== modificar
* cambia varios atributos de usuarios: $ usermod
* -s : cambia shell usuario
* -d -m : cambia el directorio HOME y mueve el contenido
* -u : cambia el UID del usuario
* -g : cambio del grupo principal del usuario
* -e : fecha expiración contraseña usuario
* -a -G : añade un grupo a un usuario
== grupos
=== crear
* grupo nuevo:$ groupadd
=== modificar
* $ groupmod
* -n : cambia el nombre del grupo
* -g : cambia el GID del grupo
== /bin/nologin VS /bin/false
2019-11-14: haciendo un chroot el comportamiento ha sido al revés del explicado aquí abajo. /sbin/nologin no me deja SFTP ni SSH, /bin/false si me deja SFTP, no SSH
* modificaciones en **/etc/passwd** para evitar login
* **/sbin/nologin**, **/usr/sbin/nologin**
* evitar que un usuario haga login por consola (le quedaría SFTP).
* Además muestra el mensaje **/etc/nologin.txt** cuando se intenta el acceso vía telnet/ssh
* Se considera una shell válida (aunque no lo es). Hay programas que exigen tener una shell válida (de FTP, p.e.)
* **/etc/shells/** <- shells válidas del sistema, no debe aparecer **nologin** para que funcione correctamente
* **/bin/false**
* evitar el login total en el sistema (telnet/ssh/ftp).
* No da mensajes de error, símplemente cierra la conexión.
* otras alternativas para evitar login:
* modificar el campo de la contraseña **/etc/passwd**, poniendo una admiración en su lugar (por convención)
* modificar el campo de la contraseña **/etc/shadow**, poniendo una admiración en su lugar (por convención)
* usar ''passwd -l '' para bloquear (añade ! al hash en **/etc/shadow**)
* ''passwd -S '': status (**L** locked)
* usar ''usermod --expiredate 1''
/via: https://www.enmimaquinafunciona.com/pregunta/312/-cual-es-la-diferencia-entre-el-sbinnologin-y-el-binfalso-
/via: [[https://unix.stackexchange.com/questions/10852/whats-the-difference-between-sbin-nologin-and-bin-false]]
https://github.com/mysecureshell/mysecureshell