= usuarios y grupos ~~NOTOC~~ == información usuario * ''id '' -> para saber datos y grupos del usuario * ''whoami'' -> nombre del usuario == usuarios en línea * ''who'' -> usuarios conectados - terminal * ''ps -U '' -> procesos asociados a un usuario * ''sudo pkill [-9] -u '' -> eliminar procesos asociados a un usuario. /via: [[https://www.simplified.guide/linux/user-force-logout]] == cambio de contraseña * ''passwd []'' -> cambiar contraseña propia o si tienes privilegios, la contraseña de otro usuario. * ''echo 1234 | passwd --stdin jordi'' (no funciona en Debian) * ''echo "jordi:1234" | chpasswd'' (se puede añadir ''-m'' para que guarde la contraseña en formato MD5 en lugar de DES * ''/etc/security/pwquality.conf'' : establece complejidad de las contraseñas a usar en el sistema === chage (CHange AGE) * modificación datos, expiraciones, inactividad * ''chage -l '':_ comprobar "estatus" cuenta. * ''chage -d 0 '' : forzar cambio de contraseña * ''passwd -e '' == grupos * ''groupadd '' : crear un grupo * ''useradd -G '' : añadir nuevo usuario a otros grupos * ''usermod -g '' : añadir/cambiar el grupo principal de un usuario * ''usermod -a -G '' : añadir un usuario existente a un grupo existente * ''newgrp '': establece como principal el de manera temporal, útil para no reinicar sesión y aplicar la pertenencia (según comando anterior) * ''usermod -g '' : añadir/cambiar el grupo principal de un usuario existente * ''deluser '' : elimina al usuario del grupo, no elimina ni al usuario ni al grupo == 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