确保 SSH 用户不会无意中影响 Apache 文件所有权

确保 SSH 用户不会无意中影响 Apache 文件所有权

在 LAMP 配置中使用 Ubuntu 14.04。

我有一个 webroot,其中包含所有属于 www-data:www-data(即 Apache)的文件和目录。我有一个 root SSH 帐户,主要用于 shell 访问。然后我在系统上有另一个 SSH 用户,可以使用 SSH 进行 shell 或 SFTP 访问。

我遇到的问题是 SSH 用户可能会通过终端使用 nano 修改文件,或者他们可能会上传最终属于其 SSH 用户的 CSV 文件,而不是属于 www-data 的 webroot 中的其他文件。我将他们的 SSH 用户添加到 www-data 组,但似乎仍偶尔可以在系统上找到属于该用户的文件。值得一提的是,我从未看到它们属于 root 用户,只是用户帐户。

如何确保用户有办法编辑属于 www-data 的文件而不影响权限?如何确保 SFTP 用户创建的文件可被 www-data 读取?

答案1

这不是一个完美的解决方案,但您可以尝试直接在 中将您的 SFTP 用户的 UID 和 GID 更改为 www-data(我假设是 33:33)/etc/passwd

您还需要在用户的主目录上运行 chown,以便用户可以登录到他的帐户。

chown -R 33:33 /home/$username

因此,该用户上传/创建的所有文件均归 www-data 所有。

答案2

如果您有用户需要能够编辑其他用户的文件所有者,您可以让他们成为同一组的成员

usermod -a -G group username

只需确保组权限为 6(读写)或 4(只读)。例如:

# owner can read+write, group can read+write, others can only read
chmod 664 file

# owner can read+write, group can only read, others can only read
chmod 644 file

或者:

# give group read+write permissions
chmod g+rw /path/to/file

# give group only read permissions
chmod g+r /path/to/file

相关内容