Parámetro SSH para ignorar el script .bashrc


8

Tengo un servidor que cuando se inicia, una línea .bashrcejecuta el siguiente comando /bin/watch ~/checker.bashque, como se esperaba, observa ese comando al iniciar el servidor.

También tengo un cliente que inicia sesión en esa máquina, pero no quiero que las sesiones del cliente ejecuten el mismo comando desde .bashrc.

He examinado la AcceptEnvposibilidad de pasar los entornos, aunque requiere la configuración del servidor, lo que quiero evitar.

Tampoco quiero tener 2 cuentas de usuario diferentes para diferentes .bashrc's.

¿Hay otro ángulo para abordar esto?


¿Por qué no quieres dos cuentas diferentes? todos los "clientes" (que parece ser un no relacionadas 3 partes) deben ser aislados (también del mismo)
Umlaute

Respuestas:


5

puede activar partes de su .bashrcsolo si no se invoca a través de ssh.

por ejemplo, algo como:

# within an SSH-session, ${SSH_TTY} will be set
if [ "x${SSH_TTY}" = "x" ]; then
  /bin/watch ~/checker.bash
fi

funcionó de maravilla y todas las respuestas aquí me enseñaron mucho. ¡Muy apreciado!
ljs.dev

13

Dos caminos:

No use bash para esta sesión, intente el guión (o / bin / sh):

ssh 127.0.0.1 /bin/dash

Use bash con opciones de comando para deshabilitar el procesamiento de archivos de inicio:

ssh 127.0.0.1 "bash --noprofile --norc"

¿Has probado tus caminos? (especialmente # 2)?
umläute

1
El segundo método simplemente me cuelga.
slm

55
El segundo método funciona perfectamente para mí. No ve un mensaje ya que PS1 no está configurado, lo cual es un efecto secundario de realizar lo solicitado.
Dan Garthwaite

ambos me cuelgan
Aditya Mittal

@AdityaMittal Ambos aparecerán bloqueados si está invocando una sesión interactiva porque no hay un aviso de PS1. Intenta escribir 'ls /'
Dan Garthwaite

2

Puede sustituir la línea / bin / watch .... con

 if ps ax | grep /bin/watch | grep -v grep  > /dev/null 2>&1
 then
    echo "Nothing to do"
 else
    /bin/watch ~/checker.bash
 fi

o algo por el estilo.


vale genial. En este caso, es posible que tenga varios shells ejecutando el watchcomando, pero me gusta la solución.
ljs.dev
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.