2016-10-03 1 views
0

안녕하십니까. 저는 모두 최근에 우분투으로 이동하여 프로젝트 작업을했습니다. 내가 사용, 단순히 파일에서 읽을 수 있습니다파일을 읽을 때 Java에서 권한이 거부 됨 (Linux)

File root = new File(fileroot); File sourceFile = new File(root,filename);

을하지만 난이 응용 프로그램을 실행할 때, 내가 얻을 : 이 error: error reading FilePath; FilePath (Permession denied).

(FilePath를 파일이있는 경로입니다, 내가 ' ve는 개인 정보 보호 목적으로 숨김)

Windows에서 동일한 코드를 실행해도 오류가 발생하지 않기 때문에 작동 시스템으로 인한 것 같습니다. 이 문제를 해결할 방법이 있습니까? 나는 Java에서 직접 권한을 얻거나 명령을 사용하여 터미널에서 변경하는 방법을 의미합니까?

미리 답변 해 주셔서 감사합니다.

+0

해당 파일을 열 수있는 권한을 가진 사용자로 프로그램을 실행할 수 있습니다. 예'sudo java -jar myProg.jar'. – Titus

+0

살펴볼 다른 사항은 해당 파일이 ** 생성 된 ** 방법입니다. 처음에는 ** 읽기 권한이없는 파일을 만드는 것이별로 의미가 없으므로 나중에 추가하도록 강요했습니다. 따라서 시스템에서 ** umask ** 설정을 조사 할 수 있습니다. 처음에는 ** 읽기 불가능한 ** 파일을 다루는 것이 이상하게 보입니다. 그래, 대답은 ** 문제를 해결하는 데 도움이됩니다 **; 그러나 당신은 오히려 처음에 "왜 그곳에 갔는지"묻는 것이 좋습니다. – GhostCat

답변

1

메시지와 마찬가지로 해당 파일을 읽을 수있는 권한이 없을 수도 있습니다. 문제를 해결하려면, 당신은 추가 할 수 있습니다 : 당신이 있는지 확인

ls -la <path to your file> 

:

System.out.println(sourceFile.getAbsolutePath()); 

당신이 읽으려고하고 다음의 파일 시스템 사용 권한을 확인하고 파일의 정확한 위치를 찾을 수 r 권한이 있어야합니다. 그렇지 않으면 사용자가받는 오류입니다.

+0

다음과 같이 표시됩니다 :'-rw ------- 1 root root 2044 ott 3 18:00 PATHTOTHEFILE' 나는 읽고 쓰기 권한이 있다고 생각합니까? – giku93113

+0

이것은 사용자'root'만이 읽을 수 있다는 것을 의미합니다. 이 문제를 해결하려면'chown RaggruppatoreLibriPe rAutore.java'를 통해 파일의 소유권을 변경하거나 읽기 권한'chmod a + r RaggruppatoreLibriPe rAutore.java'를 추가해야합니다. –

0

이렇게하는 한 가지 방법은 파일을 탐색하고 모든 사용자가 파일을 읽을 수 있도록 허용 권한을 변경하는 것입니다. 가장 쉬운 터미널 경유 :

chmod +r /path/to/file

모든 다른 용도가 링크를 따라 chmod를 대한 자세한 내용을 참조하십시오. https://codex.wordpress.org/Changing_File_Permissions

+0

나는이 오류로 무언가를 할 수 있었지만 이제는 오류가 사라졌지 만 다른 파일에 또 다른 오류가 있습니다. 전체 폴더에 대한 권한을 확장하는 방법은 어떻습니까? – giku93113

+0

chmod와 함께 재귀 매개 변수 "-R"을 사용할 수 있습니다 (대부분의 리눅스 명령과 같습니다.) : 'chmod + r -R/path/to/directory /' 올바른 경로. 루트 디렉토리에 이렇게하면 모든 사용자에게 전체 시스템에 대한 권한을 허용합니다. 이것은 데이터 보안에 끔찍한 일입니다. –

+0

나는 많은 덕을 보았습니다! – giku93113