我正在尝试创建和删除一些文件和文件夹,这些文件和文件夹是我在 Xubuntu 15.04 下开发的 MatLab 脚本的一部分。脚本以及文件和文件夹位于 sshfs 安装的网络驱动器上。在终端中,我可以毫无困难地创建、编辑和删除文件夹,但当我在 MatLab 中尝试时,我收到权限被拒绝的错误。
现在我对 Linux 还比较陌生,我最好的猜测是,在终端中服务器以某种方式识别我的特定于服务器的用户,而 matlab 以本地用户身份运行,并且这种冲突意味着我没有权限写入内容?
虽然不知道这是否正确,但任何见解都值得赞赏!
谢谢,Narameh
编辑;通过 SSH 登录并手动创建所有其他文件和文件夹应位于的文件夹,并授予任何人读取和写入这些文件夹的权限后,其余文件和文件夹将轻松创建。但是,如果有人有任何灵感,我仍然希望通过 MatLab 以更直接的方式做到这一点:)!
答案1
这个问题已经很久了。不过,对我有用的解决方案是改用 CIFS 挂载文件夹。请参阅以下有关如何设置的说明(摘自https://linuxize.com/post/how-to-mount-cifs-windows-share-on-linux/)
在 Ubuntu 和 Debian 上安装 CIFS 实用程序:
sudo apt update
sudo apt install cifs-utils
创建一个目录作为挂载点:
sudo mkdir /mnt/win_share
例如,创建一个/etc/.win-credentials
包含以下内容的凭证文件:
username=user
password=password
domain=domain
通过运行以下命令设置正确的权限和所有权:
sudo chown root: /etc/.win_credentials
sudo chmod 600 /etc/.win_credentials
使用以下命令安装驱动器:
sudo mount -t cifs -o credentials=/etc/.win-credentials,dir_mode=0777,file_mode=0777 //WIN_SHARE_IP/<share_name> /mnt/win_share
我想特别强调使用选项dir_mode=0777,file_mode=0777
来完全访问文件和目录!