使用 sftp 并同时拥有 www 文件访问权限

使用 sftp 并同时拥有 www 文件访问权限

我对 ubuntu 中的权限和 sftp 访问感到困惑。

我有一个有权访问 www 文件夹的用户:

<username>:www-data

我在 sshd_config 中设置了以下内容:

Subsystem sftp internal-sftp
Match group www-data
    X11Forwarding no
    ChrootDirectory /var/www
    AllowTcpForwarding no
    ForceCommand internal-sftp
Match
Match user <username>
    X11Forwarding no
    ChrootDirectory /var/www/<theirwebsite>
    AllowTcpForwarding no
    ForceCommand internal-sftp
Match

我在 sshd_config 中更改了 authorized_keys 的位置(由于 ubuntu 加密了主文件夹)

AuthorizedKeysFile    /etc/ssh/%u/authorized_keys

我有chown -R username:www-data to all the www directories

并将它们 chmod 为 755

有时我可以通过 sftp 访问,但它不允许我编辑文件。其他时候我根本无法访问。

我将非常感激任何解释,或者也许指向某处的帮助文件。

干杯

答案1

有两种不同的元素发挥作用:

  1. 通过 ssh 登录服务器的能力
  2. 文件的权限。

您对 SSH 文件所做的更改均与允许访问系统有关,但这些文件将归通过 SSH 登录的用户所有。

您可以读取这些文件,因为755权限规定“所有者可以读取、写入和执行”,其他任何人都可以读取和执行。

解决该问题的黑客方法(也是不太安全的方法)是确保文件是 chmod 777(即任何人都可以读取、删除和编辑它们)。

更好的方法是将用户名放入www-data组(在/etc/groups)并赋予文件775权限(即所有者和组可以读取,写入和执行,其他所有人只能读取和执行)

我以前没见过,但这些sshd_config命令,假设它们有效——我没有理由相信它们不会——将用户限制在他们自己的目录中,并且只能执行sftp。它无法改变文件的所有权。

相关内容