2.3.1. Gestión de usuarios

En los sistemas multiusuario suelen existir dos conceptos: el de usuario relacionado con una personalidad que ejecuta algún programa y el de grupo, que no es más que un conjunto de usuarios a los que se les quiere dotar de una característica común. Obsérvese que se ha hablado de personalidad y no de persona, porque un usuario no tiene necesariamente que corresponderse con un ser humano interactuando con el sistema. Muchos usuarios (en los sistemas de escritorio, la mayoría) no son usuarios creados para facilitar el acceso y el manejo a una persona física, sino usuarios de sistema, creados para que un determinado programa actúe bajo su identidad.

Con independencia de los anterior, puede haber dos tipos de usuarios (o grupos): usuarios locales, esto es, definidos en el propio sistema; y usuarios remotos, definidos a través de algún servidor de usuarios como Samba. Bajo este epígrafe se estudiarán los primeros sin profundizar demasiado, ya que una instalación estándar deja preparado el sistema para funcionar con ellos.

En los sistemas UNIX, hay cuatro archivos que constituyen la base de datos de los usuarios locales[1]. Todos los archivos se caracterizan porque cada línea define una entidad distinta y porque los campos que constituyen cada entidad se separan por el carácter dos puntos (":").

Antes de pasar a ver con qué ordenes podemos consultar y manipular esta base de datos, veamos las particularidades de cada archivo:

/etc/group

Almacena la definición de los grupos locales, uno por línea. Su formato es el siguiente:

audio:x:29:pepe,manolo,josem

O sea, cuatro campos:

  1. El nombre del grupo (audio en este caso),

  2. La contraseña de grupo. Esta contraseña sirve para dar acceso a un usuario a un grupo al que no pertenezca (para ello puede usarse el comando newgrp). En los unices modernos su valor es siempre la letra «x», que significa que la contraseña se encuentra en el archivo /etc/gshadow.

  3. El identificador del grupo (llamado GID).

  4. Los usuarios que pertenecen al grupo separados por comas. En esta lista no aparecen los usuarios cuyo grupo principal sea este mismo grupo, ya que su pertenencia al grupo puede deducirse de su registro en /etc/passwd.

/etc/passwd

Almacena los usuarios y sus datos. El formato de cada línea es el siguiente:

josem:x:1000:1000:Jose Miguel,,,:/home/josem:/bin/bash

En este caso, los campos son siete:

  1. El nombre de usuario.

  2. La contraseña. Este campo, sin embargo, contiene en los unices modernos[2] el carácter «x», que indica al sistema que la contraseña debe buscarse en otro archivo (/etc/shadow, que se analizará a continuación).

  3. El identificador de usuario (UID) que es el código numérico asociado a cada usuario. Este número es realmente el que se usa en el sistema de archivos para determinar la propiedad de los archivos, así que en el fondo es el identificador realmente importante y no el nombre de usuario, que puede modificarse en cualquier momento sin provocar ningún efecto traumático. Se discutirá después. Este mismo comentario es aplicable al nombre de grupo y su gid asociado que se encuentran en /etc/group.

  4. El GID del grupo principal. Un usuario puede pertenece a varios grupos y a efectos de permisos es irrelevante que un grupo determinado sea o no su grupo principal, mientras pertenezca a él. Sin embargo, como ya se verá, todo archivo tiene un usuario propietario y un grupo propietario. Cuando un usuario crea un archivo, tal archivo le pertenecerá (esto es, el propio creador será el propietario) y el grupo propietario será el grupo principal del usuario creador. Por tanto, si este usuario josem crea un archivo pertenecerá al grupo de GID 1000 y no al grupo audio (GID 29), aunque josem también pertenece a este último.

  5. La información personal del usuario (nombre real, etc.), que suele denominarse información GECOS.

  6. El directorio personal del usuario.

  7. La shell predeterminada del usuario que se ejecutará al hacer ingreso en el sistema. Las cuentas que no representan usuarios normales, sino que son necesarias para el funcionamiento de ciertos programas suelen tener como shell el comando false (/bin/false), lo que impide que puedan usarse de modo interactivo.

Nota

En algunos Linux, incluida Debian, existe el ejecutable /usr/sbin/nologin que se comporta como /bin/false, pero, además, muestra un mensaje de que la cuenta se encuentra deshabilitada.

Nota

En /etc/shells se encuentra la lista de shells que el sistema considera válidas. Los servicios que usa de modo interactivo el usuario (login, ssh, ftp, etc.) suelen comprobar si la shell se encuentra dentro de este listado y, si no es así, impiden el acceso.

/etc/shadow

Almacena las contraseñas cifradas de los usuarios y campos adicionales con información sobre ellas (caducidad, etc). En realidad, las contraseñas no están propiamente cifradas, sino que se les aplica una función de hash. Por ejemplo, la información del usuario «usuario» es la siguiente:

# getent shadow usuario
usuario:$6$feeCGVjY$m4drjYETO7DNffE/8AwmTvRnTj8qmSMy8AhMq1jaNf3ZonyAFPVc64SsY/iWTR3LxtXKnD2hfavS1FXwelAyq1:17782:0:99999:7:::

La contraseña es ell segundo campo, ese chorizo inmenso en el que se aprecian tres subcampos separados por dólares:

6

Es el algoritmo usado, según la siguiente tabla:

Código

Algoritmo

1

MD5 (desaconsejado)

2b

Blowfish

5

SHA-256

6

SHA-512

7

Colin Percival

y

Solar Designer

Los posibles algoritmos se encuentran referidos en la página de manual de crypt(5).

feeCGVjY

Es la sal utilizada para la generación del resumen.

m4drjYETO7DNffE/8AwmTvRnTj8qmSMy8AhMq1jaNf3ZonyAFPVc64SsY/iWTR3LxtXKnD2hfavS1FXwelAyq1

El resumen resultante de aplicar a la contraseña el algoritmo usando la sal.

Como de antemano sabemos que la contraseña en claro es «usuario», podemos generar el resumen[3] que aparece en /etc/shadow del siguiente modo:

$ mkpasswd -m sha512crypt -S feeCGVjY usuario
$6$feeCGVjY$m4drjYETO7DNffE/8AwmTvRnTj8qmSMy8AhMq1jaNf3ZonyAFPVc64SsY/iWTR3LxtXKnD2hfavS1FXwelAyq1

La nombre para expresar el algoritmo puede obtenerse consultando los nombres disponibles:

$ mkpasswd -m help
/etc/gshadow

Almacena las contraseñas cifradas de los grupos. Sin embargo, es raro que tales contraseñas existan, ya que este método para ganar accesos tiene la debilidad de exigir que varios usuarios deban compartir una misma contraseña. Por ello prescindiremos de analizar su formato.

Advertencia

Absténgase de alterar a mano los archivos anteriores. Existen herramientas para hacerlo que trataremos a continuación.

2.3.1.1. Consulta

Hay varios comando relacionados con el propósito de conocer información acerca de usuarios y grupos:

who

Muestra los usuarios que ingresaron en el sistema y en qué terminal se encuentran:

$ who
josem    pts/0        2016-10-12 08:35 (:0.0)
josem    pts/1        2016-10-12 08:36 (tmux(3218).%0)
josem    pts/2        2016-10-12 12:18 (tmux(3218).%5)

Nota

Es también útil el comando con el parámetro -b que permite conocer cuándo se arrancó el sistema:

$ who -b
         arranque del sistema 2016-10-12 08:33

Advertencia

Se muestran sólo los usuarios con los que se abrió la terminal y no usuarios a los que se haya podido acceder luego a través del comand su.

whoami

Muestra quién es el usuario que se está utilizando:

$ whoami
josem
logname

Muestra cuál es el usuario con el que se ingresó en el sistema:

$ logname
josem

Advertencia

En ciertas ocasiones whoami (o el explicado posteriormente id) y logname no devuelven el mismo usuario. Véase su más adelante.

groups

Muestras los usuarios a los que pertenece el usuario que se proporciona como argumento. Si no se especifica usuario, se sobreentiende que es aquel que ejecuta la orden:

$ groups josem
josem cdrom floppy audio dip video plugdev staff users netdev qemusers
id

Sirve para obtener información del usuario cuyo nombre se proporciona como argumento. Si no se especifica, se sobreentiende que es aquel que ejecuta la orden:

$ id josem
uid=1000(josem) gid=1000(josem) grupos=1000(josem),24(cdrom),25(floppy),29(audio),
30(dip),44(video),46(plugdev),50(staff),100(users),107(netdev),117(qemusers)

El comando puede usarse también para obtener información más precisa:

$ id -u josem
1000
$ id -g josem
1000
$ id -G josem
1000 24 25 29 30 44 46 50 100 107 117

Si se incluye el parámetro -n, se devuelven nombres y no números. Por tanto:

$ id -Gn josem
josem cdrom floppy audio dip video plugdev staff users netdev qemusers

equivale a usar groups.

getent

Sirve para obtener la información de usuarios, grupos y contraseñas tal y como se observa en los archivos /etc/passwd y /etc/group:

getent (passwd|group|shadow) [<nombre>]

Dependiendo de si el primer argumento es passwd o group o shadow, se devuelve información sobre usuarios, grupos o contraseñas. El segundo argumento es el nombre de usuario o de grupo del que se quiere obtener la información. Si no se especifica ninguno, se devuelve la información de todos:

$ getent passwd josem
josem:x:1000:1000:Jose Miguel,,,:/home/josem:/bin/bash

Nota

Podría pensarse que usar getent es equivalente a consultar directamente el contenido de los archivos correspondientes, pero no es así. getent devuelve información sobre todos los usuarios y grupos reconocidos por el sistema, algunos de los cuales pueden no ser locales, sino estar definidos en servidores como samba o openldap.

2.3.1.2. Manipulación

La manipulación implica la creación, eliminación y modificación de usuarios y grupos. Obviamente, es posible editar[4] directamente los archivos ya mencionados, aunque es infinitamente más recomedable hacer uso de programas específicos, que serán los que se traten a continuación.

adduser

Como su nombre indica, sirve para añadir un usuario local al sistema. Su sintaxis es:

adduser [opciones] <nombre>

Y en su uso más básico no exige ninguna opción. Ejecutado de este modo, el comando preguntará por la contraseña y la información gecos; y hará una serie de presuposiciones algunas de ellas basadas en el contenido del archivo de configuración /etc/adduser.conf:

  • El UID será el siguiente disponible dentro del rango de números reservado para los usuarios que son personas,

  • Se creará un grupo con el mismo nombre que el usuario y se le escogerá como grupo principal.

  • El usuario no pertenecerá a ningún grupo adicional.

  • El directorio personal será /home/nombre_del_usuario.

Por ejemplo:

$ adduser nuevo

Creará un usuario de nombre nuevo bajo estos presupuestos. Conviene leer la página del manual y el archivo /etc/adduser.conf para saber cómo alterar este comportamiento. No obstante, es interesante aclarar algo que se llegará a descubrir si se lee el archivo de configuración.

Hay tres rangos de números definidos para los usuarios:

  1. El rango 1-99 (0 es siempre el identificador del administrador, que se llama root) reservado a ciertos usuarios que vienen creados desde la instalación por Debian (p.e. www-data).

  2. El rango 100-999 se reserva a usuarios de sistema, esto es, usuarios destinados a servir como ejecutores de ciertos programas, por lo general, servicios (o demonios en la terminología de unix).

  3. El rango 1000-99999 se destina a usuarios normales que son los que usan interactivamente las personas que acceden el sistema.

Es conveniente tener presente estos números si decidimos asignar nosotros manualmente el UID al usuario. Pero lo más lógico y cómodo es dejar que adduser se encargue de asignar el identificador: jamás pondrá uno menor a 100, normalmente usará uno por encima de 999, y sólo si se usa la opción --system considerará el usuario como usuario de sistema y escogerá un número entre 100 y 999.

También es importante reseñar que es imposible pasar a adduser la contraseña de usuario (lo más que puede hacerse es dejarlo sin contraseña) lo que imposibilita usarlo para dar de alta usuarios funcionales automáticamente. A menos, claro está, que se dejen sin contraseña y se use luego otro comando como chpasswd.

Un uso habitual de adduser es añadir un usuario existente a un grupo existente. Para ello basta con usarlo del siguiente modo:

$ adduser nuevo disk

En este caso, nuevo es el usuario que existe y disk, el grupo existente al que se añade tal usuario.

En realidad, adduser es un script escrito en perl que evita tener que usar el comando de más bajo nivel useradd. De hecho, la página de manual de este último comando aconseja a los administradores de Debian usar adduser:

useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead.

Por esta razón, no entraremos a discutir el uso de useradd; ni por la misma razón el uso de userdel.

deluser

Script que sirve para borrar usuarios locales. En principio, sólo borra el usuario (y su grupo principal si a este grupo sólo pertenecía él), pero pueden usarse distintas opciones para borrar el directorio personal (--remove-home) o todos los archivos del sistema que le pertenecen (--remove-all-files):

$ deluser --remove-home nuevo

También es posible hacer copia de seguridad de los archivos antes de proceder al borrado. Consúltese la página del manual.

Del mismo modo que adduser permite añadir un usuario a un grupo, deluser permite borrarlo, si se usa:

$ deluser nuevo audio

Borra el usuario nuevo del grupo audio.

Nota

Cuando se borra un usuario, si quedan en el sistema archivos que le pertenecían estos seguirán teniendo como usuario propietario un usuario con el UID que tenía el usuario que se borró. Si comprobamos el propietario (con stat o ls -l) veremos que aparece directamente el UID y no el nombre de usuario ya que al haberlo borrado el sistema no puede obtener ningún usuario con ese UID. Por supuesto, si creáramos un nuevo usuario forzando que su UID fuera el del borrado, todos los archivos pasarían a ser de su propiedad.

passwd

Permite cambiar la contraseña de usuario de modo interactivo. Su sintaxis es:

passwd [opciones] [<nombre>]

Posee diversas opciones que permiten a passwd hacer algo más que cambiar contraseñas (bloquear o desbloquear el usuario, hacer que expire la contraseña inmediatamente, etc.):

$ passwd josem

Si no se especifica el nombre de usuario, el sistema entenderá que se quiere operar sobre el usuario que ejecuta el comando. Una opción especialmente interesante es --expire que provoca que se le exige al usuario cambiar la contraseña la primera vez que accede al sistema.

Nota

passwd siempre pide la contraseña actual antes de pedir la nueva, excepto si el usuario que lo ejecuta es root.

Nota

Puede configurarse la robustez mínima exigible para la contraseña a través de PAM.

chpasswd

Permite cambiar contraseñas de usuario de manera no interactiva, lo cual es muy útil cuando se escriben scripts. El comando admite por la entrada estándar líneas de la forma:

usuario:contraseña

e irá línea a línea asignando a cada usuario la contraseña proporcionada. Si lo que se quiere es cambiar la contraseña de un usuario puede hacerse lo siguiente haciendo uso de una redirección:

$ echo "usuario:contraseña" | chpasswd

Ahora bien, esto último plantea un problema de seguridad ya que la contraseña sin cifrar acabará almacenada en el historial de bash. Para evitarlo, podríamos deshabilitar para la sesión el historial redefiniendo la variable HISTFILE:

$ HISTFILE=/dev/null

Esto basta con hacerlo antes de salir de la sesión que es el momento en que los comandos se almacenan en el archivo del historial (~/.bash_history).

La orden permite también la opción -e que presupone que la contraseña que se le pasa ya está cifrada. Esto tiene utilidad en algunos casos[5]:

  • Cuando se quiere crear un usuario con contraseña nula, esto es, el usuario accede escribiendo sólo su nombre de usuario:

    # echo "usuario:" | chpasswd -e
    

    Advertencia

    Tenga cuidado, porque no todos los servicios aceptan por defecto usuarios con contraseña nula.

  • Deshabilitar la contraseña, para lo cual se suele sustituir por un asterisco:

    # echo "usuario:*" | chpasswd -e
    
chfn

Permite cambiar la información GECOS de un usuario. Esta información se compone de distintos campos y chfn nos permite modificarlos por separado, por lo que tiene una opción distinta para cada campo. Por ejemplo:

# chfn -f "Usuario plebeyo" usuario

permitiría cambiar el nombre completo del usuario usuario.

chsh

Permite cambiar la shell del usuario. Un usuario puede cambiar únicamente su propia shell:

$ chsh -s /bin/dash

mientras que el administrador puede cambiar la shell a cualquier usuario:

# chsh -s /bin/dash usuario
usermod

Permite modificar los datos de un usuario ya creado. Es el compañero de useradd y userdel, pero en este caso si lo usaremos al no existir alternativa.

Se puede hacer casi cualquier cosa: bloquear o desbloquear usuarios (lo cual también es posible a través de passwd), modificar la directorio personal, cambiar el nombre de usuario o el grupo principal, etc. Todo está en su página de manual. Algunos usos interesantes son:

  • Cambia el nombre de usuario, pero también el directorio personal moviendo los archivos que hubiera dentro del antiguo directorio:

    $ usermod -l otro -md /home/otro nuevo
    
  • Añade el usuario a dos grupos más (audio y video):

    $ usermod -aG audio,video nuevo
    

    Obsérvese que se incluye la opción -a, porque en caso contrario el usuario nuevo sólo pasará a pertenecer a estos dos grupos, eliminándose su pertenencia a los grupos en los que ya estaba (excepto su grupo principal, claro).

  • El usuario dejará de poder iniciar sesiones interactivas:

    $ usermod -s /usr/sbin/nologin nuevo
    
groupmod

Es a los grupos lo que usermod a los usuarios. Algunos usos útiles son cambiar el nombre del grupo:

# groupmod -n nuevo_nombre antiguo_nombre

o definir cuáles son sus miembros:

# groupmod -U usu1,usu2,usu3 grupo

Esta orden define la lista completa de miembros, por lo que si el grupo tenía otros miembros que no se incluyen, dejarán de serlo. Si lo que se quiere es añadir nuevos miembros, entonces puede añadirse la opción -a:

# groupmod -aU usu1,usu2,usu3 grupo
chage

Ya se ha dejado escrito más arriba que las contraseñas se escriben en un archivo aparte llamado /etc/shadow. Esto permite no sólo impedir el acceso a los usuarios, sino añadir campos adicionales que informen sobre la política de contraseñas: máximo tiempo de vigencia de la contraseña, obligatoriedad de cambiarla en el siguiente acceso, etc.

Ver también

Échele un ojo a la página de manual de shadow(5).

chage es la orden que nos permite modificar de modo sencillo los campos de /etc/shadow a fin de alterar la política de contraseñas de un usuario. Por tanto, es a las contraseñas lo que la orden a usermod a la información contenida en /etc/passwd

Nota

chage permite cambiar todo lo referente a la contraseña, excepto la contraseña misma, para lo cual hay que recurrir a chpasswd o usermod. Tampoco sirve para definir la complejidad de la contraseña, puesto que ello no se codifica en /etc/shadow.

Algunas operaciones útiles son:

  • Comprobar la política de contraseñas (la propia, excepto root que puede consultar todas):

    $ chage -l usuario
    
  • Forzar el cambio de contraseña en el próximo ingreso:

    # chage -d0 usuario
    
  • Establecer la vigencia de la contraseña (en días):

    # chage -M30 usuario
    

    Pasados estos días (que se cuentan a partir del último cambio de contraseña), se obligará al usuario a cambiar la contraseña antes de poder acceder a la cuenta.

  • Establecer con cuántos días de antelación se empezará a avisar de que la contraseñá está próxima a caducar:

    # chage -W5 usuario
    
  • Establecer el límite de días que una cuenta con la contraseña caducada permanecerá activa:

    # chage -l15 usuario
    

    Pasado este tiempo, la única forma de recuperar la cuenta será avisar al administrador para que la desbloquee.

Nota

chage permite cambiar los valores para usuarios ya existentes. Si nuestra intención, en cambio, fuera alterar los valores predeterminados para que con ellos se creen los nuevos usuarios, entonces deberemos editar el archivo /etc/login.defs y en particular las líneas:

PASS_MAX_DAYS 30
PASS_MIN_DAYS 2
PASS_WARN_AGE 7
newgrp

Cambia el grupo perdeterminado del usuario durante la sesión actual. Por ejemplo, si nuevo ya pertenece al grupo audio:

$ whoami
nuevo
$ groups
nuevo audio video plugdev
$ id -ng
nuevo
$ newgrp audio
$ id -ng
audio

Como se ve ahora el grupo principal de nuevo es audio y así será mientras que no abandone la sesión abierta. En principio, no parece tener demasiada utilidad en la medida en que los permisos que obtendrá el usuario serán los mismos que ya tenía, puesto que ya pertenecía a audio. Sin embargo, si al usuario se le incluyó en el grupo audio después de que abriera la sesión, entonces para esa sesión el usuario no pertenece al grupo y debería abandonar la sesión y volver a entrar para que recargue su membresía y pueda gozar de los privilegios de los que goza en el nuevo grupo. Usando, sin embargo, newgrp el usuario redefinirá temporalmente audio como su grupo principal y entonces sí podrá gozar de sus privilegios sin necesidad de reingresar.

Si el usuario no pertenece al grupo, aún podrá redefinirlo temporalmente como su grupo principal, pero sólo en caso de que para el grupo se haya definido una contraseña (que deberá introducir) y ya se ha discutido que esto no es algo demasiado seguro.

2.3.1.3. Cambio de identidad

En ocasiones, un usuario puede haber accedido con una determinada identidad al sistema y requerir tener otra identidad para realizar una tarea determinada. Por ejemplo, un usuario que se encuentra utilizando el sistema, pero que se ve en la necesidad de convertirse en root, para realizar una tarea de administración.

su

Permite identificarse con otra identidad a un usuario ya identificado en el sistema, sin necesidad de salir y acceder a esta nueva identidad a través del proceso de login:

$ whoami
usuario
$ su - otro
Contraseña:
$ whoami
otro

Mediante este comando el usuario actual podría convertirse en el usuario otro si es que conoce la contraseña de este último. La opción - hace que la conversión al nuevo usuario sea lo más parecida posible a como sería si se hiciera mediante login.

La opción -c permite indicar el comando que se quiere ejecutar al convertirse en el nuevo usuario. Al acabarse de ejecutar el comando, se vuelve al usuario original:

$ whoami
usuario
$ su - otro -c "whoami"
Contraseña:
otro
$ whoami
usuario

Cuando no se especifica el nombre del nuevo usuario, se sobrentiende que es root:

$ su -
Contraseña:
# whoami
root

Nota

Como logname devuelve el nombre del usuario con que se ingresó en el sistema, si se cambia con su de usuario, seguirá devolviendo el nombre original del usuario:

$ whoami
usuario
$ logname
usuario
$ su -
Contraseña:
# whoami
root
# logname
usuario

Nota

su exige conocer la contraseña del usuario del que se quieren obtener los privilegios. Además, nos convierte en tal usuario con lo que se asumirán todos sus permisos. Existe otra manera de conseguir privilegios de otro usuario que evita estos dos inconvenientes: sudo.

Advertencia

En algunas distribuciones (p.e. Ubuntu), el administrador carece de contraseña, por lo que es imposible escalar privilegios con su y debe usarse sudo. Por supuesto, basta con asignar una contraseña a root para que su pueda usarse como método para escalar privilegios.

Nota

En algunas distribuciones sólo le es permitido escalar privilegios mediante su al usuario que pertenece al grupo wheel. Esto se logra manipulando el proceso de autenticación; en particular, usando el módulo pam_wheel en el proceso de autenticación de su. Debian contiene la línea, pero la tiene comentada.

runuser

Es una orden propia del administrador para que pueda ejecutar órdenes puntuales como un usuario distinto[6]. Su uso más habitual es el siguiente:

# runuser -u usuario -- whoami
usuario

es decir, indicar con la opción -u cuál es el usuario en nombre del cual se quiere ejcutar la orden, utilizar -- para indicar que lo que sigue es la orden y, finalmente, escribir la orden con todos sus argumentos. En el ejemplo, hemos usado whoami que no requiere de ninguno.

2.3.1.4. Ejercicios sobre consulta y gestión de usuarios

Nota

Especifique mediante el uso del prompt adecuado (# o $) si la operación requiere permisos de administración o no.

  1. Comprobar si existe el usuario pepe.

  2. Crear el usuario pepe con directorio personal /home/casita_de_pepe.

  3. Deshabilitar a pepe para que no pueda ingresar en el sistema.

  4. Crear el usuario bartolo con UID 2000 y cuyo grupo principal sea el mismo que el de pepe.

  5. Habilitar el usuario pepe.

  6. Cambiar el nombre de usuario pepe a donjose. Tambien se debe cambiar su directorio personal para que sea /home/donjose.

  7. Crear un usuario maria, pero no crearle directorio personal.

  8. Añadir el usuario donjose a los grupos floppy y audio.

  9. Borrar el usuario maria.

  10. Deshabilitar a bartolo cambiándole la shell predeterminada.

Notas al pie