Answers:
在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
你无法登录。