因此,我正在尝试执行以下操作。我有一个 DigitalOcean Ubuntu 服务器,默认情况下使用 SSH 密钥登录。
我需要创建另一个只能访问该/var/www/mysite.com/public/b
文件夹的用户。我的流程如下:
1.使用以下命令创建新用户:
adduser
--home /var/www/mysite.com/public/b
--shell /bin/bash
--no-create-home
--ingroup www-data
--ingroup ssh
testuser
2. 然后,由于我不确定如何使用密钥对来处理这个问题,因此我在 sshd_config 文件中启用了通过 SSH 进行密码登录,如下所示:
PasswordAuthentication yes
3. 完成此操作后,我能够使用用户和密码组合通过 SSH 和 SFTP 打开网站,但用户可以访问所有内容。
4. 我尝试在 sshd_config 中使用它来将用户限制在他的主文件夹中:
Subsystem sftp internal-sftp
......
Match User testuser
ChrootDirectory /var/www/mysite.com/public/b
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
5. 添加该部分后,我无法再通过 SSH 登录。
我检查了/var/log/auth.log
文件,与此相关的错误是:
fatal: bad ownership or modes for chroot directory component "/var/www/mysite.com/"
我的网站的所有权属于www-data:root
所有文件夹。
权限如下:
]
我遇到的另一个问题是,即使我成功连接,也无法上传任何内容,即使将用户添加到根组后也没有任何变化。我尝试使用 www-data:www-data 拥有该文件夹,但没有任何变化。
是否有捷径可寻?