Псевдоним для судо тогда SSH

328
sttaq

Я ищу, чтобы написать псевдоним для следующих двух команд:

sudo su - user ssh somewhere 

я пробовал

alias jump='sudo su - user; ssh ' 

а затем использовать это как

jump somewhere 

но это не работает Есть ли варианты или это невозможно?

3
Хорошо, могу я спросить: почему вы хотите создать псевдоним на основе `sudo ', как этот? Есть ли какая-то другая цель, чтобы, возможно, для этого лучше подходило другое решение? JakeGould 6 лет назад 0
Я работаю с устаревшей системой, в которой пользователь, с которым мы вошли, не имеет разрешения на ssh. Но у этого пользователя есть право переключиться на другого пользователя типа администратора (не root), а затем перейти к другим полям. Я знаю, это звучит не очень хорошо, но я не могу это изменить. Мне всегда нужно было набирать 2 команды, приведенные выше, и я просто хотел, чтобы вместо них был один вкладыш. sttaq 6 лет назад 1

1 ответ на вопрос

1
Kamil Maciorowski

Вы sshбудете бежать после sudo suфиниша, поэтому ваш путь не работает. Если вам разрешено работать, sudo sshто это, вероятно, будет работать:

alias jump='sudo -u user ssh ' jump somewhere 

В качестве альтернативы su -c. Он не выделяет tty, но ssh -ttможет заставить его. Я не уверен, что все будет работать правильно, хотя. Псевдониму потребуются тяжелые цитаты и избегание безумия, это намного проще с функцией:

function jump { sudo su - -c 'ssh -tt "$@"' user su "$@"; } jump somewhere 

Не забудьте unalias jump, если псевдоним еще определен.

хорошо, но, к сожалению, ssh не разрешен. Я получаю это: Извините, пользователь не разрешается выполнять '/ usr / bin / ssh где-нибудь' как на текущей коробке sttaq 6 лет назад 0
да, я не могу запустить команду от имени другого пользователя. Но я могу переключиться на него и затем запустить команды. Странный -_- sttaq 6 лет назад 0
@sttaq Смотрите мой расширенный ответ. Kamil Maciorowski 6 лет назад 1
вау, спасибо, хотелось бы дважды проголосовать sttaq 6 лет назад 0