关于安装目的
如果客户端和服务端都是Linux(Ubuntu),并且假设服务端的用户是,那么在客户端可以执行以下命令omicron
:uid 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) - 服务器中的用户omicron
是uid 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
请注意,uid
和username
值都是 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
,需要uid
和gid
值,以及file_mode
和的标志dir_mode
,以及。如果您的 Ubuntu 服务器要通过 Apache 和其他服务实用程序写入文件,则nounix
该标志尤为重要。nounix