У мене є кілька машин, на які я регулярно натрапляю, лише з метою проведення 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 з програмою Shell Full Login, я спробував ще кілька екзотичних речей, таких як
ssh me@othermachine 'bash -l -c "sudo su - specialuser"'
і
ssh me@othermachine 'bash -l -c "sudo su - specialuser"; bash'
- жоден з яких я не розраховував працювати, і вони цього не зробили, але я подумав, що я повинен спробувати їх для повноти (і щоб уникнути наближення); вони створили ту саму оболонку без підказок (друга з доданою бонусною оболонкою без підказок для me
після exit
-ing від тієї для 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
як :>~/.keep.me; exit
. Зараз exit
завершиться сеанс і me
повернеться до вашого сеансу входу.
~/.profile
після короткої затримки?