GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo usar Bash como shell de inicio de sesión cuando el administrador del sistema se niega a permitirme cambiarlo?

El administrador de sistemas de Unix donde estoy trabajando es reacio a darme acceso para cambiar mi shell de inicio de sesión de ksh a bash . Ha dado varias excusas, la más divertida es que ya que escriben todos sus guiones para ksh no funcionarán si trato de ejecutarlos. No sé de dónde saca estas ideas, pero como no puedo convencerlo, ¿hay alguna alternativa que tenga?

(chsh está instalado en estas máquinas, pero usamos pares de claves pública/privada para iniciar sesión, y no tengo ninguna contraseña, así que cuando chsh me pide una contraseña no tengo nada que darle. )

Respuesta aceptada:

Cuando inicia sesión, el archivo ~/.profile es leído por el shell de inicio de sesión (ksh para usted). Puede indicarle a ese shell de inicio de sesión que se reemplace por bash. Debes tomar algunas precauciones:

  • Solo reemplace el shell de inicio de sesión si es interactivo. Esto es importante:de lo contrario, es posible que no funcione el inicio de sesión en modo gráfico (esto depende del sistema:algunos sistemas, pero no todos, leen ~/.profile al iniciar sesión a través de xdm o similar), y modismos como ssh foo '. ~/.profile; mycommand' fallará.
  • Compruebe que bash esté disponible, de modo que aún pueda iniciar sesión si el ejecutable no está allí por algún motivo.

Tiene la opción de ejecutar bash como shell de inicio de sesión o no. La única diferencia importante al convertirlo en un shell de inicio de sesión es que cargará ~/.bash_profile o ~/.profile . Entonces, si ejecuta bash como shell de inicio de sesión, tenga mucho cuidado de tener un ~/.bash_profile o tenga cuidado de no ejecutar bash recursivamente desde ~/.profile . No hay una ventaja real de tener ~/.profile ejecutado por bash en lugar de ksh, por lo que recomiendo no hacerlo.

También configure el SHELL variable de entorno para bash, de modo que los programas como los emuladores de terminal invoquen ese shell.

Aquí hay un código para cambiar a bash. Póngalo al final de ~/.profile .

case $- in
  *i*)
    # Interactive session. Try switching to bash.
    if [ -z "$BASH" ]; then # do nothing if running under bash already
      bash=$(command -v bash)
      if [ -x "$bash" ]; then
        export SHELL="$bash"
        exec "$bash"
      fi
    fi
esac

Linux
  1. Cómo usar una contraseña cifrada en Linux Bash Shell Script

  2. ¿Cómo cambiar Cron Shell (sh a Bash)?

  3. Consejos de Unix Shell:Cambie el Shell de inicio de sesión de Bash a otros

  4. Cómo cambiar el shell predeterminado en Linux

  5. ¿Cómo puede un script bash saber el directorio en el que está instalado cuando se obtiene con . ¿operador?

Cómo usar el comando cd de Linux para cambiar de directorio

Cómo cambiar la fuente de GNOME Shell

Cómo usar el comando Declare en Linux Bash Shell

Cómo cambiar el shell predeterminado en el sistema Linux

¿Cómo usar Linux Bash Shell dentro de Windows 10?

Android:¿cómo puedo usar los comandos de shell e interactuar con el sistema Linux que se encuentra debajo?