Una vez, un amigo mío (que es un usuario experimentado de Unix / Linux) me dijo que establecer el shell de root en algo distinto de sh (es decir, bash o zsh) podría crear problemas, porque algunos scripts podrían asumir que el shell es sh y hacer algo extraño. .
Sin embargo, creo que Ubuntu tiene el shell raíz predeterminado establecido en bash, y Gentoo también usa bash. ¿Alguien puede romper el mito?
bash
. Arranqué en modo de usuario único para solucionarlo, pero solo funcionó porque/bin/sh
todavía estaba vinculado aFBSD
la bifurcación debourne
y nobash
.zsh
y de alguna manera/usr
está dañado, ¿tendré problemas? pero mi sistema tiene/bin/sh
señalando/bin/bash
ybash
sí, por qué no sesh
verán afectados?zsh
no debería estar/usr/bin/
si se instaló incorrectamente. todos los proyectiles deben estar en/bin
/bin
pero mantiene algunos archivos/usr/share
. También dije claramente que el problema es durante el inicio de sesión durante el arranque (cuando falla algún servicio).No debería ser un problema.
Los archivos de script de shell codifican explícitamente con qué shell se ejecutan. Está codificado en la primera línea u otros programas o scripts ejecutan un shell específico y dan el script de shell como argumento.
El único programa que se me ocurre que usa la información del shell de la cuenta de usuario (además del proceso de inicio de sesión) es procmail. Realmente divertido si su usuario ha establecido como shell / bin / false en el servidor de correo ... Pero generalmente no ejecuta procmail como root.
Otro candidato sería las líneas en el crontab de root. No sé cuál es la política de crond que shell usar.
fuente
Los scripts escritos para el shell bourne la mayoría de las veces se ejecutarán contra BASH o ZSH o $ foo sin ningún problema.
En muchos sistemas Linux no hay instalado ningún sh original, sino que a menudo es un enlace simbólico contra / bin / bash.
Si algunos scripts simplemente "asumen" que el shell es explícitamente sh, deberían reescribirse. Existe el mecanismo shebang para elegir qué intérprete necesita su script. Si es el sh, el script debe incluir
#!/bin/sh
como la primera línea.Su configuración de shell predeterminada no debería ser relevante en este contexto.
fuente
No creo que cambiar el shell de root pueda causar problemas. Me parece recordar algunas unidades (¿quizás algunas variantes BSD?) Que tienen tcsh como shell predeterminado para root.
Los inicios de sesión de raíz son raros de todos modos. Normalmente, iniciaría sesión en su propia cuenta y luego su o sudo para rootear.
Lo que importa es que el shell de root debe tener la menor cantidad de dependencias posible para poder utilizarse en un contexto de reparación del sistema. Por ejemplo, es una buena idea tener un shell raíz estáticamente vinculado; algunas distribuciones envían una versión estáticamente vinculada de bash o zsh o sash (un shell con muchas utilidades estándar incorporadas). Sin embargo, esto no es tan importante si su sistema se puede iniciar fácilmente desde un CD de rescate o una unidad USB.
fuente
El shell de inicio de sesión de un usuario no afecta el proceso de arranque. Puedes configurar este shell a lo que quieras. No todos los sistemas tienen bash y funcionan bien. Además, si se
/usr/bin/zsh
instaló incorrectamente, todos los shells del sistema deberían estar en/bin
. Sin embargo, no debe cambiar/bin/sh
para apuntar a algo que no sea el predeterminado (a menos que sepa lo que está haciendo), ya que muchos scripts tienen lo#!/bin/sh
que generalmente apunta a bash, cuando deberían hacerlo#!/bin/bash
porque usan bashisms y otro comportamiento que no trabajar enzsh
odash
.fuente
bash
yzsh
están en/bin
Tengo bash como shell predeterminado para root. Solía zsh durante algún tiempo, pero luego volví a la fiesta . Qué caparazón usas, no importa mucho.
Es solo un problema, si más de una persona tiene acceso de root. En ese caso, puede seleccionar un 'denominador común' que generalmente es bash, ya que este es el shell más utilizado.
fuente
En lo que respecta a Solaris / illumos, la mención Mini-FAQ de Solaris Root Shell
Entonces, sí, si está utilizando Solaris o illumos, está bien usar shells que no sean
sh
.fuente