Centos7搭建sftp服务流程
注意:此教程是在网站的根目录下搭建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等等
- java之内部类
- html学习第一讲(内容html常规控件的的使用)
- uva----(10794) A Different Task
- uva-----(11384)Help is needed for Dexter
- uva------(11464)Even Parity
- java SE学习之线程同步(详细介绍)
- java多线程的常用方法(以及注意事项)
- MFC学习之窗口基础
- java多线程下如何调用一个共同的内存单元(调用同一个对象)
- java之多线程(Thread)
- HDUOJ------3336 Count the string(kmp)
- hduoj------2594 Simpsons’ Hidden Talents
- 通过Xtrabackup日志来恢复检查点文件
- POJ--2158--------------Milking Grid(最小覆盖字符矩阵)---(开二维kmp)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- npm 使用问题
- 接口自动化测试框架-AIM
- hexo 图片显示问题及使用typora设置图片路径
- 接口自动化项目实践
- 结对测试算法性能优化(代码层面)
- 结对测试算法性能优化(用例设计层面)
- 使用travisCI自动部署hexo博客并使用国内外不同dns
- 寻找cookie之旅
- send_keys报错element not interactable
- 博客园上传markdown文件
- Git比较分支差异的3个命令
- IntelliJ IDEA添加Class自动生成@author@date模板代码
- 如何优雅的封装requests
- nginx(一) 基础知识
- kubernetes(十三) k8s 集群监控