无法设置用户对 SMB 安装目录中的文件的写入权限

无法设置用户对 SMB 安装目录中的文件的写入权限

我已经安装了 Windows 10 目录,以便可以在我的 Windownz 计算机上编辑一些文件。

sudo mount -t cifds //W10/Users ~/public/ -o username=bobby

检查目录时,它们都有所有者root,而作为用户,bobby我只有读取权限。

我已经使用chownchmod更改了所有者和权限。详细的输出都告诉我所有者已更改,但事实并非如此。我无法使用 user 编辑其中的文件bobby

在这种情况下我做错了什么?

答案1

Unix 文件系统和Windows 文件系统是不同的。您必须向所有者提供该uid选项,因为 SMB 客户端将无法从 Windows 文件系统中提取所有者。由于向 Linux 程序提供的所有者不存在,因此无法更改所有者。这为系统调用留下了两种可能性,例如chown.

  • 它们可以返回失败,因为它们无法成功,但这会导致许多警告消息,甚至在失败后编程停止。
  • 或者他们可以假装他们成功了。许多程序运行顺利,认为一切都按预期进行,但当您期望操作实际成功时,它也可能会令人困惑。

所以你没有做错什么,软件不支持它。

您可以使用uidgid选项为已挂载的文件系统中的所有文件指定用户和组。您还可以使用file_modeanddir_mode作为文件和目录的权限。

编辑

man mount.cifs

示例:

  • 这将为每个人提供读/写访问权限。谨慎使用。

    mount -t cifs //W10/Users ~/public/ -o username=bobb,dir_mode=777,file_mode=666
    
  • 这会将文件系统挂载usergroup

    mount -t cifs //W10/Users ~/public/ -o username=bobb,uid=user,gid=group
    

相关内容