在 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