sshd如何知道调用shell?

前端之家收集整理的这篇文章主要介绍了sshd如何知道调用shell?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我输入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标准吧?

猜你在找的Bash相关文章