SSH를 통해 시스템에 로그인하면 기본 셸을 사용하여 간단하게 ssh user@host
또는 ssh user@host 'bash --norc --noprofile'
또는 와 같은 것을 지정할 수 있습니다 ssh user@host ksh
.
로컬 터미널에 로그인할 때 유사한 동작이 발생할 수 있습니까(예: 터미널이 시스템에 직접 연결되어 있고 사용자 이름을 묻는 메시지가 표시됨)?
특정 사용 사례는 screen
로그인 시 실행되고 있으며, 여기서 더프 구성 옵션은 화면 시작을 방지하여 로그인 성공을 방지합니다. SSH 액세스 권한이 있으면 로그인하고 특정 명령을 실행하여 문제를 해결할 수 있지만 터미널 액세스 권한만 있으면 문제를 해결하는 방법을 알 수 없습니다.
답변1
user
항목을 복사하고 /etc/passwd
(a) 이름을 eg 에서 user
eg 로 변경 user_mod_shell
하고 (b) 기본 셸을 변경할 수 있습니다. "나는 누구인가"에 대한 혼란(실제 질문은 아닐 수도 있음)은 USER
시작 시 설정을 통해 줄일 수 있습니다.
답변2
터미널 멀티플렉서(그것이든 tmux
다른 것이든 screen
)를 쉘의 초기화에 넣습니다.원하지 않는다구현하다(이렇게 할 수도 있습니다) - 터미널 멀티플렉서에 문제가 있으면 쉘로 다시 점프합니다.
보다 사용자 친화적으로 만들기 위해 @EvanTeitelman의 의견에 있는 제안을 사용하고 실제로 이것을 실행할 수 있습니다 multiplexer && exit
. 이렇게 하면 멀티플렉서가 정상적으로 종료되면 세션이 종료됩니다.
답변3
마지막으로 변수가 설정된 경우에만 실행합니다 .bash_profile
. 즉, 일반적인 사용 사례(ssh를 통해 로그인)는 화면을 가져오는 반면(로그인 시 실행할 명령을 지정하여 이 문제를 해결할 수 있음), 콘솔 연결의 경우 일반 세션만 가져옵니다.screen
$SSH_CONNECTION
bash --noprofile
물론, 로그인할 때마다 화면이 실행되도록 처리했다면 여전히 영향을 받을 것입니다. 하지만 이것을 완전히 완벽하게 만들 수 있는 방법은 없습니다.