En el momento de configurar la cuenta de root, durante la instalación de FreeBSD 10, se le asigna la shell csh o tcsh. Esta es la shell que utilizan tradicionalmente los sistemas FreeBSD y OS X. Para muchos linuxeros puede resultar bastante incómoda ya que, por ejemplo, no permite borrar utilizando la tecla suprimir (sólo se puede borrar con backspace). Ya sea por costumbre o gusto, posiblemente uno de los primeros cambios luego de la instalación del sistema sea instalar el intérprete de comandos Bash.

En este artículo voy a explicar cómo se cambia la shell de un usuario en FreeBSD, ya que editar directamente el archivo /etc/passwd no es una opción viable.



Instalar Bash

En FreeBSD es posible instalar un paquete desde los ports (colección de archivos de configuración y makefiles) o desde los binarios.

Si se desea compilar Bash, instalarlo desde los ports. Por supuesto antes es necesario instalar la colección de ports y el gestor portmaster ejecutando:

portsnap extract
portsnap fetch
portsnap update
cd /usr/ports/ports-mgmt/portmaster
make install clean

Para compilar e instalar Bash, ejecutar:

portmaster shells/bash

Si en cambio se desea instalar Bash desde los binarios, ejecutar:

pkg install bash

Cómo cambiar la shell de root

Luego de instalar Bash, deseo configurar la cuenta de root para que la próxima vez que inicie sesión utilice la shell Bash en vez de csh.

Para configurar cuentas de usuario se dispone de la herramienta chpass. Esta herramienta permite editar la información en la base de datos de usuarios.

man chpass

A diferencia de GNU/Linux, FreeBSD distribuye la base de datos de información de los usuarios en los siguientes archivos:

/etc/master.passwd - Base de datos de usuarios, con las contraseñas intactas
/etc/passwd        - Archivo passwd, sin las contraseñas
/etc/passwd.XXXXXX - Copia temporal del archivo passwd
/etc/login.conf    - Configuración de recursos, límites y entorno
/etc/pwd.db        - Base de contraseñas en formato db3
/etc/spwd.db       - Base de contraseñas en formato db3, con las contraseñas intactas

Para más información: man master.passwd

Antes de modificar la shell del usuario root es necesario determinar la ruta al ejecutable bash:

root@fbsd10:~ # which bash
/usr/local/bin/bash

De acuerdo al manual, para modificar la shell se debe utilizar la opción -s:

root@fbsd10:~ # chpass -s /usr/local/bin/bash root

Alternativamente, es posible realizar esta modificación de forma manual directamente sobre el archivo /etc/master.passwd, utilizando el editor vipw.

La próxima vez que se inicie una sesión de root, se utilizará el intérprete de comandos Bash:

[root@fbsd10 ~]# echo $SHELL
/usr/local/bin/bash

Además, se observa claramente que el formato del prompt corresponde al que utiliza Bash por defecto.


Tal vez pueda interesarte


Compartí este artículo