2016-07-31 2 views
0

savefig()saveas() 기능을 사용하여 .fig.jpg 개의 파일을 저장합니다. MATLAB (R2015a, Ubuntu 14.04, 개인용 컴퓨터, 단일 계정). 그러나 생성되는 파일의 소유자는 root입니다. 소유자가 내 사용자 계정이되기를 바랍니다.사용자 소유로 MATLAB에 파일 저장

나중에 소유권을 얻기 위해 chown을 터미널에 사용할 수는 있지만 직접 파일을 만들 때 MATLAB에서 직접 가져 오길 원합니다.

또한이 문제는 이전에 발생하지 않았습니다. 방금 OS와 모든 소프트웨어를 새로 설치했는데 이러한 문제가 발생하기 시작했습니다.

+1

파일 권한이 응용 프로그램을 시작한 사용자의 사용 권한이 아닙니다. 따라서 응용 프로그램이 루트에서 실행되는 이유는 무엇입니까? Matlab은 어떻게 시작 했습니까? 또한 : 파일을 어디에 저장하고 있습니까? 파일을 저장 한 디렉토리의'ls -la'를 줄 수 있습니까? –

+0

우분투 14.04에서 MATLAB R2015b를 실행하면 root가 아닌 일반 사용자가 소유 한 파일에 대해'-rw-r -r -'권한을 얻습니다. 물론 루트 사용자로 MATLAB을 실행하지 마십시오. –

+0

@GuntherStruyf 나는 루트로서 응용 프로그램을 실행하고 있었는데, 특히'sudo matlab' 명령을 사용하고있었습니다. 이것이 왜 이런 일이 일어 났는지입니다. 나는 모든 것을 명확히하기 위해 답을 쓰고있다. – user3342981

답변

0

나는 사용자가 MATLAB을 시작할 때 어떤 문제를 일으키는 지 이전 사용자들에게 동의합니다.

이 문제를 해결하기위한 빠르고 더러운 방법은 system 명령을 사용하는 것입니다. 당신이 system 명령 /bin/sh에 대한 액세스를 제공으로 (어쩌면 MATLAB 시작 방법에 따라 루트 권한으로)이 코드를 배포하려는 경우

system('chown user:group DIRTOSAVEDFILE'); 

또는

system(sprintf('chown %s:%s %s',USERSTRING, GROUPSTRING, SAVEDFILEDIR)); 

system을 사용하여 재고하시기 바랍니다.

0

내가 잘못하고있는 것을 알아 냈습니다.

sudo matlab 명령을 사용하여 MATLAB을 실행했는데, 디스크에 저장되는 파일의 소유권이 root 인 이유입니다. MATLAB을 루트로 실행하는 이유는 간단히 터미널에 matlab을 사용하는 것이 저에게 효과적이지 않았기 때문입니다. 특히, MATLAB은 JAVA 예외 오류 : "데스크탑 시작 오류"를 표시했습니다. 이 오류를 해결하려면 MATLAB의 환경 설정 디렉토리 인 ~/.matlab/R2015a의 소유권을 얻어야했습니다. 나는 소유권을 얻기 위해서 sudo chown -R username:username ~/.matlab/R2015a/을 했어. 이제 sudo없이 MATLAB을 실행할 수있을뿐 아니라 생성 된 파일에도 내 소유권이 있습니다. 의견과 답변에 대한

http://in.mathworks.com/matlabcentral/answers/50971-matlab-r2012b-java-exception-error-starting-desktop

감사 : 내 소유권 문제를 해결하기 위해 다음과 같은 링크를 사용했다. 나는 내가 추측하는 더 많은 연구를 했어야했다.