我创建了一个用户并创建了他的主目录/var/www/mysite/ftpdir
我还为该用户添加了一个 Match user 条目,其中sshd_config
ChrootDirectory 指向/var/www/mysite
我已经重新ssh
开始处理此事。
当我使用 sftp 登录时 - 用户仍然进入用户的旧目录,即/home/user
我错过了什么?
答案1
具体过程如下:
将用户添加到组:
sudo usermod -aG www blub
如下所示编辑和添加文件到“/var/www”的最简单方法是什么?或者直接使用
sudo adduser <username> www-data
- 安装 vsftpd
sudo apt-get install vsftpd
配置 vsftpd 进行远程访问:
sudo nano /etc/vsftpd.conf
并在文件内设置chroot_local_user=YES
并确保这部分内容被注释掉:
#chroot_list_enable=YES
按照文档。
- 重新启动 nsftp:
sudo service vsftpd restart
将用户的主目录配置为web目录(不在
/home
):sudo usermod -d /var/www/mysite/ftpaccessdir <username>
配置 ssh chroot
sudo nano /etc/ssh/sshd_config
将以下内容添加到末尾:
Subsystem sftp internal-sftp Match user <username> ChrootDirectory /var/www/site ForceCommand internal-sftp AllowTcpForwarding no
并确保在文件中更靠上的位置将其注释掉(即在您刚添加的位置之前)
#Subsystem sftp /usr/lib/openssh/sftp-server
重启 ssh
sudo service ssh restart
更改apache的权限:
chown root:root /var/www chown root:root /var/www/site chmod 755 /var/www
就像文档在这里。
确保您的目录具有 www-data 访问权限
sudo chown -R www-data:www-data /var/www/site chmod 755 /var/www/site
答案2
我有一个简单的方法,并且对于 Apache 来说很有用。
sudo useradd -d /var/www demo_user -g www-data
sudo passwd demo_user
sudo service ssh restart
如果您仍然遇到权限使用问题chmod
,chown
请根据您的需要解决这些问题。
答案3
如果最后出现连接被拒绝错误,请确保“子系统 sftp 内部 sftp”位于之后“UsePAM 是”。如果没有则更新并重新启动 ssh 即可。