Tengo varias máquinas en las que utilizo regularmente solo con el propósito de usar sudo su
para pasar el resto de mi sesión conectado como un usuario especial. El flujo de trabajo general es:
mymachine:~ me$ ssh me@othermachine
othermachine:~ me$ sudo su - specialuser # note: no password needed
othermachine:~ specialuser$ # do stuff
Me gustaría resumir esto en una sola línea que pueda alias, para que pueda configurar un alias para cada máquina y llegar a donde necesito estar en un solo comando, sin tener que escribir el sudo su - specialuser
repetitivo. Yo tal vez podría configurar me@othermachine
para sudo su
el inicio de sesión, pero me gustaría mantener la flexibilidad necesaria para operar como me
si necesito.
( Nota: no tengo ningún control othermachine
ni la forma en que está configurado; este es un flujo de trabajo establecido en el que entré cuando fui contratado).
Mi primer pensamiento fue solo
ssh me@othermachine "sudo su - specialuser"
y este tipo de trabajo funciona, pero no me da aviso, lo ^C
mata y me desconecta, y supongo que probablemente otras cosas también estén mal.
Después de leer el comando Run Remote ssh con Full Login Shell , probé un par de cosas más exóticas como
ssh me@othermachine 'bash -l -c "sudo su - specialuser"'
y
ssh me@othermachine 'bash -l -c "sudo su - specialuser"; bash'
- ninguno de los cuales esperaba trabajar, y no lo hicieron, pero pensé que debería probarlos para completarlos (y evitar el cierre como duplicado); produjeron el mismo shell sin prompt (el segundo con un shell adicional sin prompt adicional para me
después exit
del anterior specialuser
). Y lo intenté
ssh me@othermachine "sudo su - specialuser -c bash -l"
pero solo me atrapó
sudo: no tty present and no askpass program specified
Mejores ideas?
sudo
que golpee ^C
? Si no puedo encontrar algo mejor, podría intentarlo.
su me
de specialuser
. O en .profile
o .bashrc
, si no sigue el sudo
con exit
, el primero exit
lo llevará de regreso a me
, con un segundo para finalizar la sesión. O incluso use un archivo de marca, sudo
precedido [ -f ~/.keep.me ] && del ~/.keep.me
y seguido por [ \! -f ~/.keep.me ] && exit
: entonces solo necesita un script o un alias para un comando me
como :>~/.keep.me; exit
. Ahora exit
finalizará su sesión y me
volverá a su sesión de inicio de sesión.
~/.profile
después de un breve retraso?