2012-06-20 56 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

相關問題