2012-06-20 42 views
0

源代码已经在Fedora 15,16和Ubuntu 10,11,12中测试过了,没有问题。在firebreath npplugin中拒绝文件写入权限

但是在Fedora 17中,文件写入功能不起作用。

1)

int fd; 
if (0 < (fd = open("/home/test/temp/opentest.html", O_CREAT | O_EXCL, 0777))) { 
    write(fd, "test", strlen("test")); 
    close(fd); 
    return "Success"; 
} else { 
    return "Error"; 
} 

返回值:错误

2)

FILE *pFile; 
pFile = fopen("/home/test/temp/opentest.html", "w+"); 
if (pFile == NULL) { 
    return "Pointer is NULL"; 
} else { 
    fputs("fopen test", pFile); 
    fclose(pFile); 
    return "Success"; 
} 

返回值: “指针为空”

我猜目录的权限,使错误和设置777权限。 但没有什么改变。

相同的代码在正常的C程序中工作。

为什么它没有在firebreath npPlugin中工作?

关于权限有什么区别吗?

+0

是否有任何其他目的的mktemp函数没有创建临时文件?我应该创建html文件并设置我想要的文件名。 – Oz6848

+0

糟糕,我实际上是想链接['mkstemp(3)'](http://linux.die.net/man/3/mkstemp)。如果它只是一个临时文件,命名应该没有关系,所以目的是在分发与预期不同的情况下不要硬编码临时目录。 –

+0

谢谢你的建议。但它不仅仅是一个临时文件,并且名称是作为来自javascript的参数传递的。它不能改变。 – Oz6848

回答

0

很可能,该目录不存在,或者您没有写入权限。

此命令是否工作?
echo 123 > /home/test/temp/opentest.html

+0

为了支持这个想法,请注意FireBreath插件与托管它的浏览器具有完全相同的权限; Chrome仍然对沙盒NPAPI插件有更多的威胁,但据我所知他们现在还没有在Linux上这样做,而且据我所知,其他浏览器都没有这样做。 – taxilian

+0

它也没有与Firebreath插件 – Oz6848

+0

@taxilian一起工​​作我在firefox中测试了这个插件,我用root帐户运行了firefox,但它仍然无法工作。我在Windows 7中遇到过同样的问题,并用UAC提升解决。有没有解决方案来提升firefox或npplugin的写入文件权限? – Oz6848

相关问题