5 de Abril, 2005

El shell de root

Aunque pasó hace algunos días, quería comentarlo un poco por aquí. Resulta que en OpenBSD se ha tomado una decisión que me ha sorprendido bastante: ksh pasa a ser el shell de root.

No es nada trivial la cosa, hasta tiene una entrada en el FAQ, y es que csh(1) no es precisamente cómodo para su uso interactivo.

Si ojeamos dicha entrada del FAQ veremos como se trataba de mantener una tradición, cosa que tiene sus pros y sus contras. Es decir, me parece bien mantener cierta uniformidad en lo que esperaríamos encontrar en un sistema concreto, pero es que csh... argh :S.

Yo siempre recurro a sh cuando tengo que hacer cosas con root y sudo no me soluciona el problema. Pero por algún motivo no había cambiado el shell por defecto... hasta ahora. Supongo que también se le podría preguntar a los responsables porqué compensaba más mantener una entrada en el FAQ que realizar este cambio :P.

En principio hay que ver como están las cosas en nuestro sistema antes de tomar una decisión de ese tipo. Una de las cuestiones principales es que, en determinados casos, puede ser necesario arrancar el sistema en modo mono-usuario ( single user) por cuestiones de mantenimiento.

En ese modo solo la raíz se encuentra montada y, por lo tanto, accesible. ¿Qué pasa si el shell necesita una librería que se encuentra en /usr por ejemplo? Pues un desastre, porque ese directorio probablemente no estará montado :).

$ ldd /bin/csh ; ldd /bin/sh ; ldd /bin/ksh
/bin/csh:
ldd: /bin/csh: not a dynamic executable
/bin/sh:
ldd: /bin/sh: not a dynamic executable
/bin/ksh:
ldd: /bin/ksh: not a dynamic executable

Como los tres shell están enlazados estáticamente, pues en OpenBSD va a ser que da igual. Además en este sistema se pregunta por el shell a usar cuando se va a modo mono-usuario, con lo que además es irrelevante el shell que use root. Podemos usar cualquier otro shell de los ports (incluso BASH :D) y recordar que en caso de mantenimiento especial, tendríamos que usar uno de estos tres.

En la inminente versión 3.7 ya no habrá que preocuparse, y en versiones anteriores ejecutamos vipw y cambiamos el shell al que más nos guste.

[reidrac@blackshell.usebox.net]$ su
Password:
# echo $SHELL
/bin/ksh

Anotación por Juan J. Martínez.

Hay 2 comentarios

Gravatar

Esa risa cerca del BASH... Recuerdo hace tiempo, intentando cambiar el shell a este último me dijiste: "No pretendas administrar una OpenBSD como un Linux, porque no es Linux". Esa frase me ha marcado, jamás he vuelto a cambiar csh, hasta que instale 3.7, claro :).

por r0sk, en 2005-04-05 15:50:22

Gravatar

Para uso interactivo tienes Bourne Shell (sh) y Korn Shell (ksh) en el sistema base (ambos proporcionados por el pdksh). ¿No es un poco caprichoso instarar el port del Bourne Again Shell? Si fuera zsh diría ¡eh! que este tío hace cosas raras seguro, pero para la gente normalita ...

Ojo, que es cierto que algunas diferencias hay:
http://blackshell.usebox.net/archivo/206.php

Pero que en esto también cuentan gustos y colores... no me tomes tan en serio lo que te digo coñe :D

por Juanjo, en 2005-04-05 16:06:48

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.