У меня есть несколько машин, на которые я регулярно захожу по ssh, только для того, чтобы использовать sudo su
чтобы провести остаток моего сеанса, вошедшего в систему как пользователь специального назначения. Общий рабочий процесс:
mymachine:~ me$ ssh me@othermachine
othermachine:~ me$ sudo su - specialuser # note: no password needed
othermachine:~ specialuser$ # do stuff
Я хотел бы свести это к однострочному, который я могу использовать псевдоним, так что я могу просто установить псевдоним для каждой машины и добраться до места, где я должен быть в одной команде, без необходимости вводить sudo su - specialuser
образец. Возможно, я мог бы настроить me@othermachine
для sudo su
при входе в систему, но я хотел бы сохранить гибкость, чтобы работать как me
если мне нужно.
(Примечание: я не имею никакого контроля над othermachine
или ее настройкой; это установленный рабочий процесс, в который я вступил, когда меня наняли.)
Моя первая мысль была просто
ssh me@othermachine "sudo su - specialuser"
и такого рода работы, но я не получаю подсказок, ^C
убивает их и выписывает меня из системы, и я предполагаю, что другие вещи, вероятно, тоже не правы.
После прочтения команды Run Remote ssh с Full Login Shell я попробовал пару более экзотических вещей, таких как
ssh me@othermachine 'bash -l -c "sudo su - specialuser"'
а также
ssh me@othermachine 'bash -l -c "sudo su - specialuser"; bash'
- ни один из которых я не ожидал работать, и они не работали, но я подумал, что я должен попробовать их для полноты (и чтобы избежать дубликата); они создали ту же оболочку без подсказок (вторая с добавленной для me
бонусной оболочкой без подсказок после exit
из той, что предназначена для specialuser
). И я попробовал
ssh me@othermachine "sudo su - specialuser -c bash -l"
но это только у меня
sudo: no tty present and no askpass program specified
Лучшие идеи?