如何为已挂载的共享目录添加组写权限?(客户端/服务器案例)

如何为已挂载的共享目录添加组写权限?(客户端/服务器案例)

我有一个MacOS共享目录。我可以Ubuntu Linux使用以下命令进行访问:

# From Linux to MacOS
sudo mount -t cifs //192.168.1.X/directory_shared
                   /mnt/192.168.1.X/directoryname
                   -o username=username,
                   rw,
                   uid=####,
                   gid=####,
                   nounix,sec=ntlmssp

问题是,如果我ls -l在客户端这样做,该组总是会有r-x

如果我在服务器 (macOS) 中执行此操作,sudo chmod -R g+w XXX则不会反映在客户端中,如果在客户端中sudo chmod -R g+w XXX执行命令,则不会应用新设置,因此会被忽略(它保留在 中r-x)。我需要组写入权限在挂载的目录中写入/编辑在服务器中创建的任何内容。

笔记:服务器和客户端的用户名不同 - 所有者可以是alpha,客户端可以是Beta,但Beta服务器中也存在创建的用户,它允许从客户端连接到服务器。因此出于安全原因不是允许从客户端到服务器建立基于类型的连接alpha,只需使用Beta,并且服务器中文件的所有者大多是Alpha(它位于/Users/SharedMac 中任何用户的位置)。这些用户(服务器和客户端)共享相同的组名(次要组类型)。因此,无论谁创建新文件/目录都无关紧要,他们必须让所有用户完全访问,因为该文件的主要组与分配给这些用户的次要组相同。

我怎样才能实现这个目标?要么通过,要么sudo mount -t cifs ... [options]通过命令缺少某些东西chmod

答案1

CIFS 是一种虚拟文件系统,它创建远程共享的“视图”,并设置一组特定于客户端(而非服务器)的权限。您无法 chown / chmod 虚拟文件系统。而且 cifs 对服务器上的权限没有任何可见性。

默认情况下,cifs 挂载将创建一个具有以下项的“视图”所有者 = root(除非您像之前一样指定 uid / gid)和 755 的权限。

您可以使用dir_modefile_mode参数修改这些权限。

例如,如果您希望gid=####组中的每个人都具有对已挂载共享的写权限:

sudo mount -t cifs //192.168.1.X/directory_shared /mnt/192.168.1.X/directoryname -o username=username,rw,uid=####,gid=####,nounix,sec=ntlmssp,dir_mode=0775,file_mode=0664

请注意,这反映了客户端用户看到的内容。指定的用户uid=####和属于该gid=###组的所有成员 -在客户端上- 将具有对已安装共享的写访问权限。

但是,服务器看到的唯一用户是通过传递给它的凭据指定的用户:username=username。如果该用户对服务器上共享的实际文件夹没有写权限,则客户端上没有人可以访问。如果他有写权限,那么他和组中的任何客户端用户都将在服务器上保存所有者 = 用户名的文件。

相关内容