Когда я печатаю 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, да?