it-swarm-es.com

¿Es mala práctica establecer la cáscara de la raíz a algo que no sea el valor predeterminado?

Una vez que un amigo mío (que es un usuario experimentado Unix/Linux) me dijo que configurar la cáscara de la raíz en algo que no sea SH (es decir, Bash o Zsh) podría crear problemas, porque un script puede asumir que la cáscara es sh y hacer algo raro .

Sin embargo, creo que Ubuntu tiene una cáscara de raíz predeterminada establecida en Bash, y Gentoo también usa Bash. ¿Alguien puede romper el mito?

16
phunehehe

Sí. Si el sistema falla durante el arranque, puede iniciar sesión en la cubierta de la raíz. Si tiene separado/USR, algunas conchas pueden dejar de comenzar con éxito.

Consejo para crear una cuenta toor (uid 0, gid 0) con cubierta no estándar mientras queda raíz con shell predeterminado.

12
Maciej Piechotka

No debe ser un problema.

Los archivos de shell-script codifican explícitamente con qué shell se ejecutan. Está codificado en la primera línea u otros programas o scripts, ejecute una cáscara específica y dé el script shell como argumento.

El único programa que puedo pensar en el que usa la información de shell de la cuenta de usuario (además del proceso de inicio de sesión) es Procmail. Realmente divertido si su usuario se ha establecido como Shell/Bin/False en el servidor de MailServer ... pero por lo general no ejecuta Procmail como root.

Otro candidato sería las líneas en el crontab de la raíz. No sé cuál es la política de Crond, qué cáscara usar.

7
maxschlepzig

Los scripts escritos para Bourne Shell tendrán la mayor parte del tiempo contra Bash o ZSH o $ FOO sin ningún problema.

En muchos sistemas Linux no hay un SH original instalado, en su lugar, es a menudo un enlace simbólico contra/bin/bash.

Si algunos scripts simplemente "asumen" que la cáscara es explícitamente SH, deben reescribirse. Hay el mecanismo de Shebang para elegir qué intérprete necesita su script. Si es el SH, el guión debe incluir #!/bin/sh como la primera línea.

Su configuración de Shell predeterminada no debe ser relevante en este contexto.

3
echox

No creo que cambiar la cáscara de la raíz causaría ningún problema. Parece que recuerdo algunas UNICES (¿Tal vez algunas variantes de BSD?) Tener TCSH como la cubierta predeterminada para la raíz.

Los inicios de sesión de la 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 la cáscara de la raíz debería tener la menor cantidad de dependencias posible para ser utilizables en un contexto de reparación del sistema. Por ejemplo, es una buena idea tener una cáscara raíz enlazada estáticamente; Algunas distribuciones envían una versión vinculada estáticamente de Bash o Zsh o Sash (una concha con muchas utilidades estándar incorporada). Sin embargo, esto no es tan importante si su sistema se puede iniciar fácilmente desde un CD de rescate o una unidad USB.

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 es /usr/bin/zsh, se instaló incorrectamente, todas las conchas del sistema deben 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 #!/bin/sh que generalmente apunta a bash, cuando Deberían tener #!/bin/bash porque usan bashismos y otros comportamientos que no funcionarán en zsh o dash.

1
xenoterracide

En lo que respecta a Solaris/Illumos el Solaris Root Shell mini-Preguntas frecuentes Mención

Algunos SysAdmins aún recomiendan contra cambiar la cáscara de la raíz en
Sistemas de Solaris. Pregunte por qué y se le puede decir que la raíz necesita un
Cáscara estadísticamente vinculada que no depende de la dinámica.
Bibliotecas bajo/usr/lib. Esto fue cierto en el pasado pero no es
necesariamente el caso hoy. Solaris, cuando está configurado correctamente, es como cualquier otra versión de UNIX y puede admitir cualquier shell que defina, para root o cualquier otra cuenta.

Entonces, sí, si está usando Solaris o Illumos, está bien usar conchas que no sean sh.

0
gsl

Tengo bash como Shell predeterminado para la raíz. Usé ZSH durante algún tiempo, pero luego volví a bash. Qué shell 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 esta es la cubierta más utilizada.

0
polemon