Cada vez que ejecuto sudo sumi normal zsh(que usa el marco oh-my-zsh ), me veo obligado a usar el viejo shell Bourne ( sh) de forma predeterminada (obviamente; este es el comportamiento estándar en la mayoría de los sistemas * nix-like). Si corro zshdesde adentro shdespués de correr sudo su, obtengo el shell Z, pero sin las mejoras de oh-my-zsh.
¿Hay alguna forma de cambiar los sudo sulanzamientos de shell zsh? Si es así, ¿es posible tener también esa instancia de zshlanzamiento usando oh-my-zsh?
Estoy usando OS X 10.8.4.

Desde la página de
sumanual, hay dos formas de lograr esto.El primer método es simplemente usar el indicador
-so--shell(suponiendo que esté usando un sistema operativo basado en * NIX con una versiónsuque admita este argumento), seguido de la ruta al shell de su elección. Si no se puede encontrar el shell pasado,suvuelve al siguiente método y, en su defecto, intentará invocar/bin/sh.Por ejemplo, puede forzar el
suiniciozsh(suponiendo que exista en/bin/zsh) como:El segundo método es modificar el shell predeterminado especificado para el
rootusuario (¡ tenga cuidado! ). Esto se puede hacer editando el archivo/etc/passwdy cambiando el shell especificado para elrootusuario. Para ver qué shell se especifica de manera predeterminada, puede ejecutar el siguiente comando (suponiendo que el superusuario sea root):El comando debería mostrar algo como
root:x:0:0:root:/root:/bin/bash. Simplemente puede cambiar el/bin/bash(o lo que esté configurado en su sistema) para que apunte en suzshlugar.fuente
sudo su -s /bin/zsh(o usar--shell) retornossu: illegal option -- s. Estoy en OS X 10.8.4; ¿OS X toma un comando diferente?cat /etc/shells? Técnicamente, solo se lanzarán shells permitidos en ese archivo, aunque la página desumanual dice que esto no debería importar sisuse llama por root: Scat /etc/shellsregresa/bin/zshcomo un shell aceptable.Una forma más limpia que también protegerá su sistema en caso de que se explote su shell personalizado es crear un .profile en el directorio de inicio de la raíz con:
Simplemente cambie la ruta al shell que desea en lugar de bash.
fuente
Se puede hacer fácilmente con
chpass:fuente