我一直在努力創建一個用於Unix的C遠程shell。我能夠連接到服務器並將命令關閉。然而,我無法改變我的密碼,即使似乎正常運行。我給它一個目錄,如果該目錄不存在,我會收到一個錯誤。下面是我測試過的快速外殼。無法更改遠程shell的目錄
while(1)
{
for(n = 0; n < BUFFER_SIZE; n++)
{
command[n] = '\0';
}
write(sockfd, buffer, strlen(buffer));
read(sockfd, command, BUFFER_SIZE);
fprintf(stderr, "Command: %s\n", command);
dup2(sockfd, 2);
dup2(sockfd, 1);
dup2(sockfd, 0);
execlp("/bin/sh", "sh", "-c", command, (char *)NULL);
}