【发布时间】:2018-03-01 19:16:01
【问题描述】:
我在 fedora 中用 CGI 开始了一个新项目。这是我的代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
printf("Content-type:text/html\r\n\r\n");
printf("<!DOCTYPE html>\n");
printf("<html>\n");
printf("<title>EWN Lab</title>\n");
printf("<meta charset=\"UTF-8\">\n");
printf("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n");
printf("<body class=\"w3-light-grey\">\n");
system("ls"); // Problem comes due to this line
printf("</body>\n");
printf("</html>\n");
return 0;
}
当我使用命令行编译和执行程序时,它工作正常。但是当我尝试通过浏览器执行时,它显示 "Internal Server Error"
我使用 apache 服务器作为 Web 服务器。有谁知道通过网络浏览器运行程序时哪个用户会执行这个?
【问题讨论】:
-
我会尝试
system("echo hello")看看system是否有效。然后是system("pwd")来查看您要列出的目录。当然system("whoami")会告诉你运行程序的用户。