如何让 Nautilus 在使用 gvfs/sftp 挂载时传播组所有权权限

如何让 Nautilus 在使用 gvfs/sftp 挂载时传播组所有权权限

我正在使用 Nautilus 通过“连接到服务器”在 Ubuntu 16.04 上安装远程 Linux 文件系统

sftp:myusername@myhost/home/myusername/scripts/myfile.ext

该文件myusername:groupA在远程服务器上拥有所有权。

当我使用 Gedit 或其他编辑器远程编辑并保存文件时,它会将服务器上的所有权更改为myusername:myusername

它不尊重最初的团体所有权。

有没有什么办法可以改变这种行为?

编辑:

当我在 Nautilus 中右键单击该文件时,它显示组 ID 是 115。我查找了该名称...

getent group 115 | cut -d: -f1

并返回whoopsie

这让我相信这是某种错误。也许 Ubuntu 无法识别远程组名?

编辑:

groupA本地和远程机器上都有这个组名,但是组 ID 不同。我想知道这是否是问题所在。

答案1

请留意以下事项。

  • 任何新文件都将使用默认的 umask 022
  • 任何新文件都将归创建者用户及其主要组所有。
  • 从 SFTP 修改的文件不会在服务器上修改,但在打开时会在 RAM 中生成副本,然后在保存时覆盖该文件。这与删除文件然后创建新文件相同。

解决方案:

解决方案可能不止一个,但最简单的方法是使用 ACL。从服务器(例如通过 ssh),首先检查您是否可以使用 acl 命令。

apt install acl

您可能需要检查您的文件系统是否已使用 ACL 挂载(这是一段时间以来的默认设置)。将 / 替换为您的文件夹的适当挂载位置。

mount -o remount,acl /

注意:您可能需要更改 /etc/fstab 以使其永久生效。

最后,您必须更改要保存文件的文件夹的默认 ACL。请注意,在此文件夹中创建的任何新文件都将获得此新权限。

setfacl -d -m g:group:rwx /your/folder

将 group 替换为所需的“组”,将“/your/folder”替换为将存储文件的文件夹。如果您不需要可执行权限,也可以调整 rwx(在这种情况下,仅使用 rw)。

相关内容