Сохранять файлы в MATLAB с правами пользователя
Я использую savefig()
а также saveas()
функции для сохранения .fig
а также .jpg
файлы соотв. в MATLAB (R2015a, Ubuntu 14.04, персональный компьютер, единая учетная запись). Однако владелец генерируемых файлов - root. Я хочу, чтобы владелец был моей учетной записью.
я могу использовать chown
в терминале, чтобы позже получить право владения, но я хочу, чтобы это происходило напрямую из MATLAB, т.е. во время создания файла.
Кроме того, эта проблема не возникала раньше. Я только что сделал новую установку ОС и всего программного обеспечения, и это поведение начало происходить.
2 ответа
Я согласен с предыдущими пользователями, что это скорее вопрос того, с чего пользователь начинает MATLAB с самого начала.
Быстрый и грязный способ решения этой проблемы - использование system
команда.
system('chown user:group DIRTOSAVEDFILE');
или же
system(sprintf('chown %s:%s %s',USERSTRING, GROUPSTRING, SAVEDFILEDIR));
Пожалуйста, пересмотрите использование system
если вы планируете распространять этот код как system
Команда дает доступ к /bin/sh
(может быть, даже с правами root в зависимости от того, как запускается MATLAB).
Я понял, что я делаю неправильно.
Я запускал MATLAB с помощью команды sudo matlab
Именно поэтому файлы, сохраняемые на диск, имели права root. Причина, по которой я запускал MATLAB от имени root, заключалась в том, что я просто использовал matlab
в терминале у меня не работал. В частности, MATLAB выдал ошибку исключения JAVA: "Ошибка запуска рабочего стола". Чтобы устранить эту ошибку, мне пришлось получить право собственности на каталог предпочтений MATLAB, который ~/.matlab/R2015a
, я сделал sudo chown -R username:username ~/.matlab/R2015a/
чтобы получить право собственности. Теперь я могу запускать MATLAB без sudo, так как генерируемые файлы также принадлежат мне. Я использовал следующую ссылку, чтобы решить мою проблему собственности:
Спасибо за комментарии и ответы. Я должен был сделать больше исследований, я думаю.