无法使用 cifs 挂载打开文件进行写入

无法使用 cifs 挂载打开文件进行写入

你好,我使用以下 fstab 条目将 QNAP 安装到我的 ubuntu 机器上的驱动器上

//<ip-address>/Documents/Aly /home/aly/Documents cifs credentials=/root/.credentials,uid=1000,gid=1000,rw,hard,dir_mode=0777,file_mode=0777 0 0

这赋予了以下权限:

drwxrwxrwx  1 aly aly    0 2011-12-03 12:18 .
drwxr-xr-x 13 aly aly 4096 2011-12-03 12:14 ..
-rwxrwxrwx  1 aly aly    5 2011-12-03 11:55 test.tst
drwxrwxrwx  1 aly aly    0 2011-11-26 17:54 VirtualBox VMs

我有删除文件和添加文件的权限,但是当尝试写入文件(即 test.tst)时,我在 vi 中收到以下错误:

"test.tst" E212: Can't open file for writing

有人以前见过这种情况吗,如果我通过 nfs 安装驱动器,这不是问题,但是 nfs 缺乏我想要的安全性。

编辑

我想到的解决方案是:

<ip-address>:Documents/Aly/ /home/aly/Documents cifs hard,noperm,nouid,credentials=/root/.credentials,iocharset=utf8,file_mode=0777,dir_mode=0777,nodfs 0 0

答案1

您可以尝试nodfs文章中解释的参数(如果支持)
如何解决 DNS323 NAS 上的 DFS Samba 错误?

首先,这里有一个简短的错误描述:无法修改任何现有文件。尝试修改文件时会出现“不是目录”或“没有这样的文件或目录”或“touch:设置时间...”错误。

如果您的 Linux cifs 或 smbfs 客户端支持 nodfs 标志(集成在内核 > 2.6.27 中)。您只需将此选项添加到 mount 命令。示例:

mount -t cifs -o credentials=/home/kerphi/.smb-zekra-credentials,iocharset=utf8,file_mode=0777,dir_mode=0777,nodfs //zekra/Volume_1 /home/kerphi/zekra

如果你无法升级你的内核(像我一样,因为我关注的是 Debian 版本),那么你必须遵循这个解决方法:

  • 使用 Web GUI 连接到 DNS323 并转到工具→系统。
  • 将配置保存到您的工作站(在“配置设置”部分)。
  • 保存后,编辑文件并在此行下方:
    ;[ global ]
    添加以下行:
    msdfs root = no
    然后通过 Web 界面上传此文件,您的 NAS 将重新启动,您将能够再次修改现有文件!

这在CIFS:添加 nodfs 挂载选项

如果使用 DFS 路径,较旧的 samba 服务器(例如 Debian etch 的 3.0.24)无法正常工作。此类服务器声称它们支持 DFS,但无法处理某些带有 DFS 路径的请求。从 Linux 2.6.26 开始,cifs 客户端开始在这种情况下发送 DFS 路径,导致其无法与较旧的 samba 服务器一起使用。

nodfs 挂载选项强制使用非 DFS 路径共享,即使服务器声称支持它。

答案2

尝试写入文件时

使用 root 权限写入,那么它很可能会起作用(rw给出选项)

相关内容