在决定创建一个帐户并问自己之前,我花了几个小时寻找这个问题的答案:
操作系统:Ubuntu 18.04
我有一个名为“服务器”的文件夹
在此文件夹中,文件由用户“pufferd”下的进程生成和编辑(由 PufferPanel 提供支持的游戏服务器)
我希望允许其他用户通过 FTP 修改、创建和删除此文件夹中的文件(我不希望使用 PufferPanel 提供的 SFTP)
然而,我发现并尝试过的所有方法都无法实现该文件夹的伪“双重所有权”。
我尝试过更改权限,也尝试过设置文件夹的所有者组,但似乎不可能允许两个用户创建文件并可以互换而没有任何权限问题。
通过 FTP 用户上传的文件对于“pufferd”来说是只读的
“pufferd” 创建的文件对于 FTP 用户来说是只读的。
对此最简单的解决方案是什么?理想情况下,文件夹中的所有文件,无论所有者或创建来源(服务器制作,ftp 上传或其他)都是每个具有文件夹访问权限的用户可读、可写和可执行的。
答案1
Linux 中不存在双重所有权。
您需要将两个用户放在一个组中并为该组添加访问权限,或者允许所有用户(=其他用户)访问文件。
要设置新创建文件的权限,您可以使用访问控制列表(acl
)修改(-m
)默认(-d
)访问权限:
setfacl -d -m g:groupname:rwx /path/to/servers
我实际上不会使用,rwx
但这rwX
意味着文件夹可以执行(7
),而文件不能执行(6
)。
您还可以允许“其他人”访问所有文件:
setfacl -d -m o::rwX /path/to/servers
默认意味着所有新文件和目录都将获得这些权限。这不会影响已存在的文件。