Назад | Перейти на главную страницу

Как sshd узнает, что нужно вызывать оболочку?

Когда я печатаю ssh remote-host command, sshd будет работать bash -c command для меня.

Как sshd знать, чтобы вызвать bash с участием -c вариант?

Черт возьми, это жестко запрограммировано в исходном коде OpenSSH.

Из session.c исходного кода OpenSSH 5.9p1:

/*
 * Execute the command using the user's shell.  This uses the -c
 * option to execute the command.
 */
argv[0] = (char *) shell0;
argv[1] = "-c";
argv[2] = (char *) command;
argv[3] = NULL;
execve(shell, argv, env);
perror(shell);
exit(1);

Полагаю, это стандарт POSIX, да?