两个用户:
A1:x:1001:1002::/home/A1:/bin/sh
A2:x:1002:1002::/home/A1:/bin/sh
一组:
A1:x:1002:
FTP 服务器:全新安装 ProFTPd 操作系统:全新安装 Ubuntu Server 12.04
我想在 A1 和 A2 之间共享一个文件夹 (/home/A1):
/home/A1: A1:A1 rwxrwxr-x
/home/A1/B1.txt: A1:A1 rw-rw-r--
/home/A2/B2.txt: A1:A1 rw-r--r--
我想要的是:
- B1.txt可由A1和A2修改
- B1.txt 可以由 A1 修改,但不能由 A2 修改,因此 A2 只能读取它。
当我现在连接到FTP时,A2可以修改任何内容,但我不太明白这一点。如果我从 /home/A1 删除组写入权限(因此 rwxr-xr-x),A2 无法修改任何内容。
我做错了什么?
答案1
上传文件的方式是创建一个新的临时文件并将其移动到位,而不是覆盖现有文件。这是因为,如果在覆盖文件的过程中连接丢失,您将得到一个不完整的文件。
上传新文件、删除现有文件以及上传现有文件的新版本都只需要对目录进行写访问。现有文件的权限(如果有)并不重要。因此A2同样可以修改B1.txt
和B2.txt
。
如果需要不同的权限来更新这两个文件,请将它们放在具有不同权限的不同目录中。
如果您需要在同一目录中使用这两个文件,请创建B1.txt
一个符号链接到A2 具有写入权限的目录writable-by-A2/B1.txt
。writable-by-A2
答案2
您收到什么错误消息?
如果错误是“覆盖权限被拒绝”,那么您需要在您的系统中启用覆盖proftpd.conf
- 默认情况下,它被禁用。
为此,请添加:
AllowOverwrite yes
到该<Global>
部分(这将允许覆盖文件权限允许的任何地方),或到某个<Directory /home/A1>
部分(这将允许仅在该目录中且仅在文件权限允许的情况下进行覆盖)。
如果这不是错误消息,请为您的问题添加更多详细信息 - 至少是错误消息,最好是日志摘录。