У меня есть несколько машин, которые я регулярно использую sudo su
в ssh, только для того, чтобы использовать оставшуюся часть моего сеанса в системе как пользователь специального назначения. Общий рабочий процесс:
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
Лучшие идеи?
sudo
я ударил ^C
? Если я не могу придумать что-то лучшее, я мог бы попробовать это.
su me
от specialuser
. Или в .profile
или .bashrc
, если вы не последуете sudo
с exit
, ваш первый exit
вернет вас назад me
, а второй завершит сеанс. Или даже используйте файл флага, поэтому sudo
перед ним стоит [ -f ~/.keep.me ] && del ~/.keep.me
и следует [ \! -f ~/.keep.me ] && exit
: вам нужен только сценарий или псевдоним для команды me
as :>~/.keep.me; exit
. Теперь exit
завершит сеанс и me
вернется к сеансу входа.
~/.profile
после небольшой задержки?