我想要做的是创建一个 ftp 用户,该用户能够更新和修改 apache2 v2.4(带有 www-data)Web 目录中的文件。
我有一个用户:UserA(名字已更改以保护有罪者)文件夹是 /var/www/vhosts;所有权已更改为 www-data:www-data UserA 已添加到 www-data 组。UserA 的主目录设置为 /var/www/vhosts
我已经安装并运行了 ProFTPd。用户 A 连接正常。
问题在于文件夹/文件的所有权。所有文件都正常设置为 644,所有文件夹都设置为 755。
由于 UserA 不是所有者,因此它属于组策略,并且由于限制而无法添加、删除或修改文件。
有什么方法可以将 UserA 伪装成 www-data,以便他们可以执行这项工作?
我这样想对吗?还有其他方法吗?谢谢 用户通过 FTP 连接到 Web 文件夹
答案1
如果我理解正确的话,您希望通过 FTP 进入您的 Web 服务器并将文件上传到 Web 根目录。文件(和目录?)的所有者和组是www-data:www-data
。
可能发生的情况(我已经有一段时间没有使用 ProFTP 了)是umask
用户 A 在 ProFTP 中的配置与umask
shell 使用的配置不同。这可能会使故障排除变得混乱。
我会尝试以下操作:
添加
userA
到www-data
群组(如您所做的一样)将模式分配
0775
给vhosts
目录(例如chmod 0775
:)应用 SGID(例如
chmod g+w+s vhosts
:),vhosts
以便所有文件都应用组权限
这应该实现:
用户 A 上传了一个文件,该文件归
vhosts
所有者所有userA
,但www-data
所有权属于群组由于
vhosts
目录没有设置粘滞位(上面设置为0775
),组中www-data
具有组写访问权限的任何用户都vhosts
可以删除/修改该文件
笔记:特别注意apparmor
和可能的SElinux
。您可能需要调整这些实用程序(如果已安装)的配置,以允许 Web 服务器或 ProtFTP 在那里写入。
笔记:要获得推荐的、安全的 FTP 替代方案,请查看 WinSCP/SFTP。通过生成 OpenSSH 密钥对,您可以将公钥放在www-data
用户的主目录中,并在通过 WinSCP 登录时“伪装”为 Web 服务器。这允许进行加密通信、更安全的身份验证,并减少权限调整的繁琐程序。