2016-07-31 129 views
0

我正在使用savefig()saveas()函数来保存.fig.jpg文件或分辨率。在MATLAB(R2015a,Ubuntu 14.04,个人电脑,单帐户)。但是,正在生成的文件的所有者是root。我希望所有者成为我的用户帐户。用MATLAB保存带有用户所有权的文件

我可以在终端中使用chown以后获得所有权,但我希望直接从MATLAB发生,即在文件创建时。

此外,这个问题以前没有发生过。我刚刚安装了操作系统和所有软件,并且这种行为开始发生。

+1

是不是导致文件权限启动该应用程序的用户的权限?那么为什么应用程序在根目录下运行?你如何启动Matlab?另外:你在哪里保存文件?你可以给你保存文件的目录的'ls -la'吗? –

+0

在Ubuntu 14.04下运行MATLAB R2015b,我获得了文件的'-rw -r -r-'权限,属于普通用户,而不是root。当然,不要在root用户下运行MATLAB。 –

+0

@GuntherStruyf我以root身份运行应用程序,特别是我使用命令'sudo matlab',这就是发生这种情况的原因。我正在写答案来澄清一切。 – user3342981

回答

0

我同意以前的用户,这更可能是用户启动MATLAB开始的问题。

解决此问题的一种快速且肮脏的方法是使用system命令。

system('chown user:group DIRTOSAVEDFILE'); 

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

,如果你打算为system命令可以访问到/bin/sh分发此代码(也许甚至取决于MATLAB是如何开始root权限),请使用重新system

0

我已经弄清楚我做错了什么。

我使用命令sudo matlab运行MATLAB,这就是为什么保存到磁盘的文件拥有root权限。之所以我以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

感谢您的意见和解答。我想我应该做更多的研究。

相关问题