답변:
은 ssh
원격 사용자의 쉘에서 제공하는 명령 (으로부터 얻은 실행 /etc/passwd
으로부터 눈에 보이는대로) 소스 코드 :
argv[0] = (char *) shell0;
argv[1] = "-c";
argv[2] = (char *) command;
argv[3] = NULL;
execve(shell, argv, env);
따라서 원격 서버에서 예제를 위해 실행되는 각 명령은 다음과 같습니다.
bash -c declare
bash -c mount
둘 다에 전달되어 bash
평가됩니다. 내장은 내부에서 평가되며 외부 명령은 마치 로컬 명령 행 프롬프트에서하는 것처럼 호출됩니다.
-t
스위치로 대화식을 강제 할 수는 있지만 여전히 rc 파일을로드하지는 않습니다.
sshd
(서버)하지,이 일을한다 ssh
(클라이언트).
/etc/passwd
. 그것은 만약/usr/sbin/nologin
당신이 로그인 할 수 없습니다.