===== Proceso para crear un usuario en GNU/Linux de forma manual (sin adduser / useradd) =====
Proceso para crear un usuario en sistemas GNU/Linux de forma manual, editando los mismos ficheros que los comandos adduser / useradd.
**Se creará el usuario pepe con los siguientes parámetros**.
* **Usuario**: pepe
* **Nombre real**: Jose
* **Grupo**: pepe
* **Home**:/home/pepe
* **Bash**: /bin/bash
# El ID / GID deben estar disponibles, en la mayoría de distribuciones empiezan con un ID 500 para la creación de usuarios.
echo "pepe:x:502:502:Jose:/home/pepe:/bin/bash" >> /etc/passwd
# Creación del grupo pepe.
echo "pepe:x:502:" >> /etc/group
# Creación del "home" del usuario pepe.
mkdir /home/pepe
cp /etc/skel/.[^.]* /home/pepe/
chown pepe:pepe /home/pepe
# Contraseña (cacadevaca) en /etc/shadow. (https://docs.python.org/3/library/crypt.html#module-crypt)
contrasena=`python3 -c 'import crypt; print(crypt.crypt("cacadevaca", crypt.mksalt(crypt.METHOD_SHA512)))'`
chmod 600 /etc/shadow
echo "pepe:${contrasena}:::" >> /etc/shadow
chmod 000 /etc/shadow
===== Modificar la password de un usuario pasandola como parámetro (scripts) =====
Estos métodos hay que cogerlos con pinzas en lo que refiere a seguridad por motivos obvios. Son útiles para cambiar passwords en sistemas Unix sin usar le uso interactivo, normalmente para scripts.
echo "XXX" | passwd --stdin usuario
echo -e "XXX\nXXX" | passwd usuario
# Cambiar el password del usuario en uso.
echo -e "password_actual\npassword_nuevo\npassword_nuevo" | passwd