Вход в систему ssh, должностное лицо одна команда и я не хотим выходить из удара

Вы можете использовать два SED выражений :

sed -e "s/\t/,/" -e "s/\t/-/" your_file
0
26.08.2014, 11:52
2 ответа

Похоже, это сработает:

ssh -t localhost "echo '. /dev/fd/2'|sudo bash -sil 2<<\FILE        
PS1='my prompt : '
exec 2>/dev/tty
exec </dev/tty
FILE
"
[sudo] password for mikeserv: 
my prompt : id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),19(log)
my prompt : 

sudo закроет все файловые дескрипторы, кроме 0,1,2 по умолчанию, и он хочет <& 0 на терминале для пароля, но вы можете часто украдкой с угоном stderr . В любом случае, это не навсегда - практически первое, что я сделал выше, - это переподключил его к терминалу ssh . Более реалистично у вас будет какой-то реальный скрипт, через который вы будете проходить, например $ (cat file) , где мое определение $ PS1 и все остальное. Тем не менее, это раздражающее косвенное обращение; было бы лучше, я думаю, вместо этого обрабатывать эти вещи по мере необходимости в удаленных профилях.

0
28.01.2020, 02:28

sudo -i запускает оболочку входа в систему в качестве целевого пользователя. Остальной экспорт PS1 ... будет выполнен только после завершения работы этой оболочки.

Кроме того, ваш ~ / .bashrc , скорее всего, переопределит PS1, и передача его в среду, вероятно, не поможет.

Вы можете попробовать:

ssh -t host 'sudo env PROMPT_COMMAND="PS1=\"Remote! \W: \"
             unset PROMPT_COMMAND" bash -l'

(при условии, что целевой пользователь ~ / .bashrc не устанавливает $ PROMPT_COMMAND ).

3
28.01.2020, 02:28

Теги

Похожие вопросы