Can't save new file even though I definitely have write permissions

106 views (last 30 days)
I'm trying to save a .mat file in the following manner:
save('/path/to/file/file.mat','var1','var2');
I'm getting the "Cannot save /path/to/file/file.mat: Permission denied" that you typically get when the user running Matlab does not have permissions to write to the directory specified.
The problem is I ABSOLUTELY have write permissions to /path/to/file.
The output to
ls -l '/path/to/'
shows the 'file' directory as drwxrwxr-x, and belongs to group "Developers", which I am a part of.
Further proof that I have write permissions: If I cd /path/to/file/ and then create a file named 'file.mat' using vim, and THEN invoke Matlab's save as described above, it WORKS!. If I then remove that file using a terminal and try to save from Matlab again, it FAILS!
Why might I not be able to create a new file from Matlab?
The only nuance I can think of is /path/to/file is an NFS mount on RHEL7
  2 Comments
Walter Roberson
Walter Roberson on 20 Dec 2023
I no longer recall... if /path/to/file is an NFS mount point, then does ls -l reflect the permissions of the underlying mount point, or does it reflect the permissions of the mounted filesystem ?
Daniel Klisiewicz
Daniel Klisiewicz on 21 Dec 2023
Edited: Daniel Klisiewicz on 21 Dec 2023
given that I can can change the permissions of /path/to/file on the mounted location and have it reflect in the ls -l output, I'm led to believe that it reflects the underlying mount point and not the filesystem itself.
This is a good point to consider, although I'm not sure if it explains why I can create a file from a terminal at the mount point but not from an instance of matlab at the same location?

Sign in to comment.

Accepted Answer

Daniel Klisiewicz
Daniel Klisiewicz on 22 Dec 2023
It turns out that the Matlab session was launched prior to myself being added to the 'Developer' group. A log out, log in, and relaunch of Matlab fixed the issue.

More Answers (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 20 Dec 2023
Check the permission:
% Specify the path you want to check
folderPath = '/path/to/file/file.mat';
% Get file attributes
attributes = fileattrib(folderPath);
% Check if you have the write permission in the folder
if attributes==1
disp('Write permission is available for you! :)');
else
disp('Write permission is NOT available for you! :(');
end

Categories

Find more on Programming in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!