注意:此教程是在网站的根目录下搭建sftp
创建一个用户组和用户,并设置密码
groupadd sftp
useradd -g sftp -s /bin/false website
passwd website
设置website用户的主目录为/var/www/html/uploads/
usermod -d /var/www/html/uploads/
编辑sftp的配置文件
vim /etc/ssh/sshd_config
修改:
#Subsystem sftp /usr/libexec/openssh/sftp-server ##前面添加#号
末尾添加:(部分有的话修改就可以不用添加)
Subsystem sftp internal-sftp ##指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp ##匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /var/www/html/uploads/ ##sftp主目录指定到/var/www/html/upoads/
ForceCommand internal-sftp ##指定sftp命令
AllowTcpForwarding no ##用户不能使用端口转发
X11Forwarding no ##用户不能使用端口转发
设定sftp的主目录权限
chown root:sftp /var/www/html/uploads/ //文件夹所有者必须为root,用户组可以不是root
chmod 744 /var/www/html //权限不能超过755,否则会导致登录报错,可以是755
重启相关服务
systemctl restart sshd.service
注意:目前为止,sftp的主目录只有查看权限,只能实现下载、查看,并不能上传,删除,重命名
在sftp主目录下创建一个test文件夹,并设置所有者为website,用户组为sftp
mkdir /var/www/html/uploads/test
chown website:sftp /var/www/html/uploads/test
chmod 744 /var/www/html/uploads/test
重启一次sshd
systemctl restart sshd.service
注意:登录sftp,分为在linux和windows登录
linux:sftp website@ip地址
windows:并不自带sftp命令,只能通过下载ftp连接工具,比如xftp,或者flashfxp等等