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
죽이고 나를 로그 아웃합니다.
Full Login Shell로 Run Remote ssh 명령을 읽은 후 다음 과 같은 몇 가지 이국적인 것을 시도했습니다.
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
짧은 지연 후에 sudo 명령을 추가하는 것은 어떻습니까?