1:创建用户组、用户、设置密码
创新互联技术团队十载来致力于为客户提供成都网站制作、做网站、品牌网站建设、全网营销推广、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了上1000家网站,包括各类中小企业、企事单位、高校等机构单位。
groupadd sftp
useradd -g sftp -s /sbin/nologin -M sftp1
passwd sftp1
2:创建sftp根目录(root用户下创建)
mkdir /home/sftp/uploads
1
3:编辑sftp配置文件
vim /etc/ssh/sshd_config
1
末尾添加(注意,添加部分一定要放在末尾,否则重启sshd报错):
Subsystem sftp internal-sftp ##指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp ##匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /home/sftp/uploads/ ##sftp主目录指定到/home/sftp/uploads/
ForceCommand internal-sftp ##指定sftp命令
AllowTcpForwarding no ##用户不能使用端口转发
X11Forwarding no ##用户不能使用端口转发
可以通过sshd -t测试配置文件是否正确,无任何输入则正确
4:设置主目录权限
chown root:sftp /home/sftp/uploads/ //文件夹所有者必须为root,用户组可以不是root
chmod 744 /home/sftp //权限不能超过755,否则会导致登录报错,可以是755
5:重启sshd
systemctl restart sshd
1
6:登录sftp(linux/Windows)
sftp sftp1@ip地址
1
此时,登录进来的用户只有查看主目录及其子目录的权限,不能删除、上传、下载和重命名文件。
7:为sftp1创建文件夹
mkdir /home/sftp/uploads/test1
chown sftp1:sftp /home/sftp/uploads/test1
chmod 744 /home/sftp/uploads/test1
8:重启sshd
9:登录进入sshd执行ls命令查看当前目录下的文件,可以看到一个test1文件夹,cd进入test1文件夹才可以上传本地文件到test1文件夹下或者从test1文件夹下载文件到本地。(忽略test2文件夹,是我为sftp2用户建立的)
将~目录下的文件a删除到test1文件中: