Hay ocasiones en las que es necesario crear una cuenta de usuario sin su correspondiente directorio personal. En tales circunstancias, tampoco deseamos que dicho usuario pueda acceder a una shell. Para lograr estos objetivos, en este post explicaremos cómo agregar un nuevo usuario sin directorio home. Luego veremos que al hacerlo, no se asigna una shell a dicha cuenta.
Agregar un nuevo usuario sin directorio home
Para empezar, recordemos que el comando utilizado para agregar usuarios es adduser
(aunque también podemos usar useradd
). Cualquiera de las dos opciones nos servirá en este caso.
En el man page de adduser
, encontraremos la siguiente opción:
-r
o --system
: crear un usuario del sistema. Es decir, un usuario que estará ligado exclusivamente a un servicio del sistema (tal como fue el caso del usuario servicioweb con Apache en el post anterior). Las cuentas de usuario del sistema no tienen fecha de expiración.
-s
o --shell
: especificar una shell. Al setear /bin/false junto a esta opción, se inhabilitará el login del usuario.
Al utilizar esta opción en la creación de un nuevo usuario, los siguientes puntos se verificarán:
- No se creará el directorio home del usuario.
- Se creará el grupo con el mismo nombre que la cuenta.
- Se asignará /bin/false como shell del usuario.
Utilizaremos el usuario fulano como ejemplo:
adduser --system fulano --shell=/bin/false
En la Fig. 1 podemos verificar los puntos 1-3 que mencionamos hace instantes:
Recordemos que para establecer la shell de usuario existente se debe utilizar el comando usermod
con la misma opción (--shell=/bin/false
). Esta es una de las maneras de inhabilitar el inicio de sesión para la cuenta en cuestión. Este punto nos puede resultar útil si deseamos impedir que un usuario físico (real) se loguee en el sistema.
Espero que este post les haya resultado interesante. ¡Nos leemos en breve!