如何在 Ubuntu 中以所有权限挂载 (cifs) MacOS 目录

如何在 Ubuntu 中以所有权限挂载 (cifs) MacOS 目录

关于安装目的

如果客户端和服务端都是Linux(Ubuntu),并且假设服务端的用户是,那么在客户端可以执行以下命令omicronuid 1007 gid 1007

sudo mount -t cifs //192.168.1.X/samba_alias
                   /mnt/192.168.1.X/directoryname       
                   -o username=omicron,
                   rw,
                   uid=1007,
                   gid=1007

uid并且gid必须与服务器中的 omicron 相同,否则无法在已安装的目录中创建任何内容。因此,由于从客户端创建的任何新文件都具有与服务器用户相同的 uid 和 gid,因此服务器可以毫无问题地使用它们。

如果服务器是MacOS,客户端是Ubuntu。

如果通过 GUI 使用smb://hostname/directorynameshared,它被安装,并可以创建任何东西并执行任何脚本,它在:

*$XDG_RUNTIME_DIR/gvfs/smb-share:server=hostname,share=directorynameshared

唯一的缺点是,由于用户/组不同,服务器无法编辑/访问新内容,这个问题chown在服务器端得到解决。无论如何,目录稍后会被卸载。

现在,这篇文章的原因是,如果使用以下内容(Ubuntu 到 MacOS) - 服务器中的用户omicronuid 505 gid 507

sudo mount -t cifs //192.168.1.X/directorynameshared
                   /mnt/192.168.1.X/directoryname       
                   -o username=omicron,
                   rw,
                   uid=505,
                   gid=507

可以执行脚本,但无法创建新内容:

  • mkdir: cannot create directory ‘xyz’: Permission denied

这种情况怎么解决呢?

答案1

在 MacOS Samba 服务器上,您需要确保连接帐户对共享目录具有“完全读/写”权限。从那里,此连接字符串将适用于手动安装情况:

sudo mount -t cifs -o uid=omicron,username=omicron,password=superSecretPassword!123 //192.168.1.X/directorynameshared /mnt/192.168.1.X/directoryname

请注意,uidusername值都是 MacOS 计算机上帐户的文字名称,并且值password也是明确提供的。我还没有遇到过在 MacOS Samba 主机上手动安装共享时需要rw或标志的情况。gid

如果您计划将安装添加到/etc/fstab文件中,那么您还需要一些额外的东西:

//192.168.1.X/directorynameshared       /mnt/192.168.1.X/directoryname  cifs uid=505,gid=507,username=omicron,password=superSecretPassword!123,file_mode=0770,dir_mode=0770,nounix 0 0

请注意,当通过 挂载共享时/etc/fstab,需要uidgid值,以及file_mode和的标志dir_mode,以及。如果您的 Ubuntu 服务器要通过 Apache 和其他服务实用程序写入文件,则nounix该标志尤为重要。nounix

相关内容