Cuando inicio sesión en mi Mountain Lion Mac de forma remota, ssh
no obtengo la misma PATH
variable que cuando abro un shell localmente: el shell local hereda su entorno como se esperaba launchd
y, por lo tanto, tiene el valor PATH que configuré en /etc/launchd.conf
.
Con el shell remoto me encontré con una sorpresa: cuando abro un shell a través de ssh
él, no hereda las variables de entorno configuradas /etc/launchd.conf
, aunque ssh
todos los procesos relacionados tienen launchd
como padres. ¿¿¿Por qué???
Un corte de una ps -ef
salida muestra:
UID PID PPID C STIME TTY TIME CMD
0 1 0 0 Mon01PM ?? 9:07.07 /sbin/launchd
.
.
.
501 150 1 0 Mon01PM ?? 0:17.99 /sbin/launchd
.
.
.
501 39994 150 0 Thu11AM ?? 0:00.72 /usr/bin/ssh-agent -l
.
.
.
0 74002 1 0 2:08PM ?? 0:00.05 /usr/sbin/sshd -i
501 74005 74002 0 2:08PM ?? 0:00.00 /usr/sbin/sshd -i
501 74000 9844 0 2:08PM ttys000 0:00.02 ssh bridge@bridgethegap.local
Puedo solucionar el problema configurando, PATH
por ejemplo, en .bashrc
, pero estoy buscando una manera de dar lo mismo PATH
a todas las aplicaciones iniciadas en Mountain Lion (ver En Mountain Lion, ¿cómo configuro la variable de entorno PATH...? ).
Entonces mi pregunta es: ¿Por qué los shells remotos a través de ssh no heredan el entorno de lanzamiento?
También busqué una respuesta y finalmente encontré una respuesta relacionada con esta pregunta, Cómo configurar variables de entorno en todo el sistema en OS X Mavericks .
Es una medida de seguridad, particularmente para garantizar que los usuarios de shell seguros con un shell deshabilitado, donde SHELL
está configurado /bin/false
, no puedan obtener acceso no solicitado.
Una solución es configurar PermitUserEnvironment
su configuración ssh; lea las advertencias de seguridad en la respuesta mencionada anteriormente antes de hacer esto.
grg
halloleo
halloleo