好吧,我是 Linux 新手...我按照这个教程操作https://linuxconfig.org/how-to-setup-sftp-server-on-ubuntu-18-04-bionic-beaver-with-vsftpd
我的目标是创建一个新用户,通过 SFTP 访问 /var/www
按照教程,我编辑了 sshd_config
sudo nano /etc/ssh/sshd_config
并将其添加到文件中:
Match group sftp
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
并重新启动 SSH。
sudo service ssh restart
我创建了一个新群组
sudo addgroup sftp
和一个新用户。
sudo useradd -m sftpuser -g sftp
我设置了用户密码。
sudo passwd sftpuser
在此之后,当我尝试使用 SFTP 连接到服务器时,它可以工作,但是当我转到 /var/www 时,我在 FileZilla 中收到此错误:
Comando: cd "/var/www"
Error: Directory /var/www: no such file or directory
Error: Error al recuperar el listado del directorio (error on retrieving directory listing)
我需要这个用户能够访问 /var/www,因为这是他唯一的功能。服务器还有其他用户,我担心如果我弄乱文件夹的权限会破坏某些东西。
答案1
Match group sftp
ChrootDirectory /home
您的配置限制 sftp 用户只能访问/home
目录及其子目录。实际上,/home
对于这些用户来说,目录将作为根目录出现。/var/www
位于 之外/home
,因此无法访问。
您可以从中删除“ChrootDirectory”指令sshd_config
。用户将可以访问整个文件系统,包括/var/www
(取决于文件权限)。
或者,你可以使用绑定挂载使目录/var/www
内部可访问/home
。绑定挂载通常用于 SFTP chroot 环境。