Pasos para crear un usuario manualmente en Linux
En linux existen un par de comandos para dar de alta un usuario: useradd y adduser. En este artículo mostraremos que es lo que hacen. Crearemos un usuario manualmente.
Para crear un usuario se debe modificar el archivo /etc/passwd. Podemos hacerlo de forma segura utilizando el comando de linux vipw (sirve para bloquear el archivo mientras lo estés modificando de forma que nadie más pueda editarlo).
vipw /etc/passwd
En este archivo se guardan los usuarios del sistema. Para añadir otro, se crea una nueva línea con esta información:
nombreusuario:*:1000:1000
,,,:/home/nombreusuario:/bin/bashnombreusuario - Es el nombre con el que el usuario podrá loguearse
* - Sirve para que la cuenta esté deshabilitada, normalmente este campo contendrá una x que significa que tiene una contraseña asignada en el archivo /etc/shadow
1000 - es el id del usuario (User Id). Es un identificador único que no puede estar repetido.
1000 - es el id del grupo de ese usuario. En linux cada usuario tiene un grupo con el mismo nombre que crearemos luego.
Nombre,,, - Son campos de información del usuario como el Nombre, Apellidos, etc separados por coma.
/home/nombreusuario - es la carpeta que le corresponde al usuario.
/bin/bash - es la shell o aplicación que se ejecutará cuando el usuario se loguee. Por ejemplo, otra forma para que un usuario no pudiera acceder al sistema sería poniendo aquí un programa que no se lo permitiera.
En linux cada usuario tiene un grupo con el mismo nombre, ahora crearemos este grupo utilizando el comando vigrp de linux, para bloquear el archivo /etc/groups mientras lo editamos:
vipw /etc/passwd
Hay que añadir el nuevo grupo asegurando que es el mismo nombre que el usuario, y el GID (Id de Grupo) que hemos puesto al crear el usuario
nombreusuario:x:1000:
A los grupos también se les puede asignar passwords, pero en este caso no será necesario y ponemos una x.
Ahora hay que crear el directorio de inicio y carpeta personal del usuario
mkdir /home/nombreusuario
A continuación copiaremos los archivos por defecto que tendrá el usuario en su directorio home. Estos archivos suelen estar en /etc/skel. Hay que copiar también los subdirectorios, por eso utilizamos el atributo -r (recursivo)
cp -r /etc/skel/* /home/nombreusuario
Como hemos creado las carpetas con un usuario con privilegios de administrador, ahora hace falta cambiar los propietarios de estos directorios ara que el usuario los pueda usar. Recordamos que nombreusuario=nombregrupo.
cd /home/nombreusuariochown -R nombreusuario.nombregrupo .chmod -R go=u,go-w .chmod go= .
passwd nombreusuario
Finalmente, ejecutando este comando nos pedirá una password para este usuario que se guardará debidamente encriptada en /etc/shadow.