当我输入ssh remote-host命令时,sshd将为我运行bash -c命令.
sshd如何知道使用-c选项调用bash?
哦该死的,这是在OpenSSH的源代码中硬编码的.
来自OpenSSH 5.9p1源代码的session.c:
/* * 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标准吧?