第一步:创建sftp服务用户组,创建sftp服务根目录

groupadd sftp
#此目录及上级目录的所有者(owner)必须为root,权限不高于755,此目录的组最好设定为sftp
mkdir /srv/sftp
chown -R root:sftp /srv/sftp
chmod -R 0755 /srv/sftp

第二步:备份sshd配置文件然后编辑

mv /etc/ssh/sshd_config ~/backup/sshd_config_xxx
vim /etc/ssh/sshd_config

这一步,注释掉/etc/ssh/sshd_config文件中的此行代码:

Subsystem  sftp    /usr/libexec/openssh/sftp-server

添加如下代码:

Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /srv/sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

功能可简述为:凡是在用户组sftp里的用户,都可以使用sftp服务
使用sftp服务连接上之后,可访问目录为/srv/sftp/username
举个例子:

用户test是一个sftp组的用户,那么他通过sftp连接服务器上之后,只能看到/srv/sftp/test目录下的内容
用户test2也是一个sftp组的用户,那么他通过sftp连接服务器之后,只能看到/srv/sftp/test2目录下的内容

第三步:添加有效的sftp用户,且给予用户写权限

#此例将创建一个名称为test的sftp帐号

#创建test的家目录:test目录的所有者必须是root,组最好设定为sftp,权限不高于755
mkdir /srv/sftp/test
chmod 0755 /srv/sftp/test
chown root:sftp /srv/sftp/test
#添加用户 使用参数 -s/sbin/nologin禁止用户通过命令行登录
useradd -gsftp -d/srv/sftp/test -s/sbin/nologin test

关于写权限,如下解决方案并不是很完美

#在test目录下创建一个可以写的目录
mkdir /srv/sftp/test/write
chown -R test:sftp /srv/sftp/test/write

这样test用户就可以在自己家目录里的write目录下拥有写入权限了


最后再强调一下,sftp服务的根目录的所有者必须是root,权限不能超过755(上级目录也必须遵循此规则),sftp的用户目录所有者也必须是root,且最高权限不能超过755.

centos下配置sftp且限制用户访问目录[转]的更多相关文章

  1. centos下配置sftp且限制用户访问目录

    SFTP在Linux下是一个很方便很安全的文件传输工具,我常常用它在Linux服务器上替代传统的ftp来传输文件.众所周知SFTP账号是基于SSH账号的,默认情况下访问服务器的权限很大,下面的教程就是 ...

  2. CentOS下配置MySQL允许root用户远程登录

    1.常用命令: 安装上传下载文件命令yum install lrzsz安装webget工具yum -y install wget ----------------------------------- ...

  3. CentOS下配置SFTP操作日志

    1.修改ssh的配置 vi /etc/ssh/sshd_config 在36行左右修改如下配置 Subsystem sftp /usr/libexec/openssh/sftp-server -l I ...

  4. Ubuntu Server如何配置SFTP(建立用户监狱)

    Ubuntu Server如何配置SFTP(建立用户监狱)   SSH File Transfer Protocol是一个比普通FTP更为安全的文件传输协议.(参考资料:http://en.wikip ...

  5. Centos下配置php环境

    Centos下配置php环境   目录[-] 环境: GD2 2 安装PHP 5.2.14(FastCGI模式) 1)编译安装PHP 5.2.14所需的支持库: 2)编译安装MySQL 5.5.3-m ...

  6. centos下配置gitosis服务器遇到的困难

    这篇博客主要讲的是在centos下配置gitosis遇到的问题. 背景:centos7.2 64 :gitosis2.0 1.困难1 1)产生的问题及原因.gitosis没有安装成功,没有出现fini ...

  7. CentOS下配置防火墙 配置nat转发服务

    CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/sysconfig/network   这里可以更改主机 ...

  8. CentOS下配置iptables防火墙 linux NAT(iptables)配置

    CentOS下配置防火墙 配置nat转发服务CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/syscon ...

  9. Ubuntu Nginx下配置网站ssl实现https访问

    最近在看  HTTP权威指南   看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...

随机推荐

  1. 获取Windows系统中的所有可用和在用串口

    目的:获取Windows系统中的所有可用和在用串口 方法:注册表查询法 优点:简单.实用.快速.无遗漏,无多余结果. 说明:另外还有8种方法可以枚举串口,但都不如此法. 代码和详细注释如下: //-- ...

  2. xssgame挑战wp

    前言 昨晚做了一些xss的题目,有点上瘾了,今天想着再找一些来做做. google了一下,发现了不少,找到这么一个. 地址: https://xss-game.appspot.com 这是一个国外的x ...

  3. Java学习笔记19(String类)

    String代表字符串,在Java中,所有的字符串字面值都作为此类的实例实现 字符串的特点以及简单的原理分析: package demo; /* * String类的特点: * 所有的"&q ...

  4. cassandra的gc调优

    我们用的是cassandra3.7官方的docker镜像,在生产环境发现有一个小时一次停顿的现象.我猜测是java gc的原因,于是看了cassandra的gc日志,果然发现有每小时长达300ms-2 ...

  5. asp.net core 教程(五)-配置

    Asp.Net Core-配置 Asp.Net Core-配置 在这一章,我们将讨论 ASP.NET Core项目的相关的配置.在解决方案资源管理器中,您将看到 Startup.cs 文件.如果你有以 ...

  6. SQLServer 创建服务器和数据库级别审计

    概述 在上一篇文章中已经介绍了审计的概念:本篇文章主要介绍如何创建审计,以及该收集哪些审核规范. 一.常用的审核对象 1.1.服务器审核对象 1.FAILED_LOGIN_GROUP( Audit L ...

  7. 微信小程序之两个页面传值

    需求:发送页面点击某一个元素之后,获取该元素的属性值,然后把这些属性值传到接收页面中. 思路:获取当前点击元素的索引,就能获取当前元素的值,然后通过跳转的 url 地址传递值 还是整个完整的例子吧: ...

  8. Zabbix实战-简易教程--动作(Actions)--自动注册

    一.概述 之前已经讲述了自动发现功能,自动注册和自动发现非常类似,但是比自动发现更精确.因为自动注册,是在Agent上自定义元数据,然后Agent将元数据发送给server进行匹配,如果匹配一致,则进 ...

  9. Erlang epmd官方文档中文翻译

    本文含epmd简介及官方文档之翻译,文档地址 http://erlang.org/doc/man/epmd.html翻译时的版本 R19.1 中英文水平都不咋地,不通顺处海涵,就酱. 简介 Erlan ...

  10. time模块、装饰器、类的装饰器

    python  time模块 导入模块: import time #time模块是python中最基本的模块之一 输出时间戳:time.time() #可以用变量接收,要打印出来要用print(),如 ...