GNU/Linux >> Tutoriales Linux >  >> Linux

¿Instalar zsh sin acceso de root?

Si la máquina tiene zsh, debería estar bien simplemente ejecutando zsh en un aviso para intercambiar, si eso funciona, puede probar chsh para intercambiar su shell (debería funcionar sin root) o cuando se conecta con ssh poner ssh -t hostname zsh para iniciarlo automáticamente.


Puedes probar el chsh dominio. ¿Estás seguro de que zsh no está instalado en la computadora distante? Si no, puede hacer esto (citado de la sección 1.7 de preguntas frecuentes de zsh)

La idea básica es usar exec para reemplazar el shell actual con zsh. A menudo, puede hacer esto en un archivo de inicio de sesión como .profile (si su shell es sh o ksh) o .login (si es csh). Asegúrese de tener alguna forma de modificar el archivo (por ejemplo, a través de FTP) antes de intentarlo, ya que el ejecutivo suele ser bastante implacable.

Si tiene zsh en un subdirectorio bin de su directorio de inicio, coloque esto en .profile:

[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l

o si su shell de inicio de sesión es csh o tcsh, ponga esto en .login:

if ( -f ~/bin/zsh ) exec ~/bin/zsh -l

(en cada caso, -l le dice a zsh que es un shell de inicio de sesión).

Si desea verificar que esto funcione antes de comprometerse con él, puede hacer que el shell de inicio de sesión le pregunte si desea ejecutar zsh. El siguiente trabajo para proyectiles tipo Bourne:

[ -f $HOME/bin/zsh ] && {
        echo "Type Y to run zsh: \c"
        read line
        [ "$line" = Y ] && exec $HOME/bin/zsh -l
}

y para shells tipo C-shell:

if ( -f ~/bin/zsh ) then
        echo -n "Type Y to run zsh: "
        if ( "$<" == Y ) exec ~/bin/zsh -l
endif

No es una buena idea poner esto (incluso sin -l) en .cshrc, al menos sin algunas pruebas sobre lo que se supone que debe hacer csh, ya que eso hará que cada instancia de csh para convertirse en zsh y hará que csh scripts (sí, desafortunadamente algunas personas los escriben) que no llaman a csh -f fallar Si quiere decirle a xterm que ejecute zsh, cambie la variable de entorno SHELL a la ruta completa de zsh al mismo tiempo que ejecuta zsh (de hecho, esto es sensato para mantener la coherencia incluso si no está usando xterm). Si tiene que ejecutar zsh desde su .cshrc, una verificación de seguridad mínima es if ($?prompt) exec zsh.

Si desea que su shell de inicio de sesión aparezca en la lista de procesos como -zsh, puede vincular zsh a -zsh (por ejemplo, mediante ln -s ~/bin/zsh ~/bin/-zsh) y cambiar el exec a exec -zsh. (Asegúrese de que -zsh esté en su camino). Esto tiene el mismo efecto que la opción -l.

Nota al pie:si SÍ tiene acceso raíz, asegúrese de que zsh esté en /etc/shells en todas las máquinas apropiadas, incluidos los clientes NIS, o puede tener problemas con el FTP en esa máquina.


Descarga zsh con:

wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
mkdir zsh && unxz zsh.tar.xz && tar -xvf zsh.tar -C zsh --strip-components 1
cd zsh

Puede compilar zsh usted mismo, por ejemplo:

./configure --prefix=$HOME
make
make install

y luego inícielo explícitamente o programáticamente desde el archivo de inicio de su shell actual (ponga exec $HOME/bin/zsh -l en el lugar correcto).


Linux
  1. Cómo instalar ZSH en Ubuntu 20.04

  2. ¿Es posible instalar g ++ en CentOS sin root?

  3. Sin acceso de root, ejecute R con BLAS sintonizado cuando esté vinculado con BLAS de referencia

  4. ¿Cómo puedo instalar un RPM sin ser root?

  5. ¿Instalar emacs sin sudo?

CÓMO:Ejecutar Linux en Android sin root

¿Cómo instalar paquetes en Linux (CentOS) sin usuario root con manejo automático de dependencias?

Instalación de software en Linux sin privilegios de root

¿Cómo instalar localmente .deb sin apt-get, dpkg o acceso de root?

¿Cómo se accede a Webmin?

Permitir al usuario root de linux acceder a mysql root sin contraseña