我创建了一个 SFTP 用户(上传),并将他添加到 www-data。我还设置了 var/www/html 文件夹的权限,并编辑了 sshd_config,如下所示:
Subsystem sftp internal-sftp -l INFO
Match User upload
ChrootDirectory /var/www/html/i
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
PasswordAuthentication yes
历史:
186 sudo adduser upload
187 sudo nano /etc/ssh/sshd_config
188 sudo systemctl restart sshd
189 sudo usermod -a -G www-data upload
190 sudo ls -ld /var/
191 sudo chmod 755 /var/
192 sudo chown root:root /var/
193 sudo chmod 755 /var/www/
194 sudo chown root:root /var/www/
195 sudo chmod 755 /var/www/html/
196 sudo chown -R www-data:www-data /var/www/html*
197 sudo find /var/www/html/ -type d -exec chmod 775 {} \;
198 sudo find /var/www/html -type d -exec chmod g+s {} \;
但我无法连接到服务器。如果我添加 SFTP 用户而不设置文件夹权限,我可以连接但无法上传文件和文件夹。
来自 auth.log 的日志:
New session 134 of user upload.
sshd[11476]: fatal: bad ownership or modes for chroot directory component "/var/www/html/"
pam_unix(sshd:session): session closed for user upload
我使用带有 nginx 的 ubuntu 服务器 22.04!
答案1
我通过简单改变 sshd_config 修复了这个问题。
从
Match User upload
ChrootDirectory /var/www/html/i
到
Match User upload
ChrootDirectory /var/www/html