2012-06-20 1 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"; 
} 

반환 값 :

내가 생각 "포인터가 NULL"디렉토리의 권한하게 오류 및 설정 777 허가. 하지만 아무 것도 변경되지 않았습니다.

동일한 코드가 일반 C 프로그램에서 작동했습니다.

왜 firebreath npPlugin에서 작동하지 않았습니까?

권한에 대한 차이점은 무엇입니까?

+0

임시 파일을 만들지 않고 mktemp 기능의 다른 용도가 있습니까? html 파일을 만들고 원하는 파일 이름을 설정해야합니다. – Oz6848

+0

죄송합니다. 실제로 ['mkstemp (3)'] (http://linux.die.net/man/3/mkstemp)와 연결하려고합니다. 임시 파일 일 경우 이름은 중요하지 않으므로 배포본이 예상 한 것과 다른 경우 임시 디렉토리를 하드 코딩하지 않는 것이 좋습니다. –

+0

조언 해 주셔서 감사합니다. 그러나 그것은 단지 임시 파일이 아니며 이름은 자바 스크립트에서 매개 변수로 전달됩니다. 변경해서는 안됩니다. – Oz6848

답변

0

디렉토리가 존재하지 않거나 쓰기 권한이 없을 가능성이 큽니다.

이 명령이 작동합니까?
echo 123 > /home/test/temp/opentest.html

+0

이 아이디어를 뒷받침하기 위해 FireBreath 플러그인은 플러그인을 호스팅하는 브라우저와 완전히 동일한 사용 권한을가집니다. Chrome은 샌드 박스 NPAPI 플러그인에 더 많은 위협을주고 있습니다.하지만 지금까지는 Linux에서 그렇게하지 못하고 있습니다. 다른 브라우저에서는 인식하지 못합니다. – taxilian

+0

파이어 폭스 플러그인으로도 작동하지 않았습니다. – Oz6848

+0

@ taxilian 파이어 폭스에서이 플러그인을 테스트했고 루트 계정으로 파이어 폭스를 실행했지만 여전히 작동하지 않았습니다. 나는 Windows 7에서 같은 문제를 강조하고 UAC 표고로 해결했습니다. 파이어 폭스 또는 npplugin의 파일 쓰기 권한을 높이기위한 해결책이 있습니까? – Oz6848

관련 문제