一, 设置相关用户,用户组,ssh配置文件

mkdir -pv /opt/ftpsite/{admin,user1,user2}
groupadd sftpadmins
groupadd sftpusers useradd -g sftpadmins -s /sbin/nologin -d /opt/ftpsite/ admin
passwd admin
123456 useradd -g sftpusers -s /sbin/nologin -d /opt/ftpsite/ user1
passwd user1
111111 useradd -g sftpusers -s /sbin/nologin -d /opt/ftpsite/ user2
passwd user2
222222 [注意:不要使用 echo "PASSWORD" | passwd --stdin USERNAME 这种方式设定密码,经测试有bug] vim /etc/ssh/sshd_config
Port 35021
Subsystem sftp internal-sftp
Match Group sftpadmins,sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no 说明1: ChrootDirectory %h ,表示用户通过sftp登录后就把根目录切换到它自己的家目录
说明2: 以上为经过修改的配置 sftp -oPort=35021 admin@192.168.56.23
输入密码进行登录

  

二. 设置权限

三个用户先测试登录成功,但因为目录都是root用户的,所以没有写入权限

接下来修改用户权限如下
[root]# ll -d /opt/ftpsite
drwxr-xr-x 5 root root 4096 5月 11 10:59 /opt/ftpsite
说明:用户的家目录属主必须是root,且权限最高755 [root]# cd ftpsite/
[root]# ll
drwxrwx--- 2 admin sftpadmins 4096 5月 12 15:10 admin
dr-xrwx--- 2 user1 sftpadmins 4096 5月 12 12:15 user1
dr-xrwx--- 2 user2 sftpadmins 4096 5月 12 15:11 user2

  

sftp目录结构 /opt/ftpsite/{admin,user1,user2},

注意目录admin, user1, user2的所属和权限设置,非常重要!!!

三. 测试

用户名: admin   密码: 123456
sftp -oPort=35021 admin@192.168.56.23
可以在{admin,user1,user2}目录读写

用户名: user1    密码: 111111
sftp -oPort=35021 user1@192.168.56.23
可以列出所有目录,但只能进入bmcoop1目录读取,其他目录拒绝查看/进入

用户名: user2    密码: 222222
sftp -oPort=35021 user2@192.168.56.23
可以列出所有目录,但只能进入bmcoop2目录读取,其他目录拒绝查看/进入

使用FileZilla连接时,格式如下
主机: sftp://192.168.56.23
用户名: user2
密码:  222222
端口: 35021

搭建sftp并设置不同权限的多个用户的更多相关文章

  1. 搭建SFTP服务器,允许一个或多个用户拥有一个或多个目录的rwx权限

    1.引言 sftp可以为传输文件提供一种安全的网络的加密方法.sftp 与 ftp 有着几乎一样的语法和功能.SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式.其实 ...

  2. Linux Centos 6.6搭建SFTP服务器

    Linux Centos 6.6搭建SFTP服务器 在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的 ...

  3. CentOS7.5 下搭建SFTP

    CentOS7.5 下搭建SFTP Linux 创建用户组 groupadd sftp 创建用户test useradd -G sftp -s /sbin/nologin test -s 禁止用户ss ...

  4. linux搭建sftp服务器

    转自:http://blog.csdn.net/superswordsman/article/details/49331539 最近工作需要用到sftp服务器,被网上各种方法尤其是权限设置问题搞得晕头 ...

  5. centos6和ubuntu14搭建sftp

    参考 http://blog.csdn.net/xinxin19881112/article/details/46831311 一. 在Centos 6.6环境使用系统自带的internal-sftp ...

  6. 搭建sftp服务+nginx代理

    在公司,经常会用到sftp服务,比如两个公司对接生产项目,其中一方,要在sftp上上传pdf文件,另一方公司要在sftp服务器上用nginx代理直接下载pdf文件.下面就说说我在实际中应用到的sftp ...

  7. linux 上搭建sftp服务

    原文链接:https://www.cnblogs.com/yanduanduan/p/9046723.html sftp和ftp的区别 FTP是一种文件传输协议,一般是为了方便数据共享的.包括一个FT ...

  8. Linux ---搭建SFTP服务器

    在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的版本 ssh -V 使用ssh -V 命令来查看op ...

  9. windows 上搭建 sftp 服务器 -freesshd全过程( 在linux上部署逐浪CMS的必读教程)

    文章标题: windows 上搭建 sftp 服务器 - freesshd全过程 关键字 : freesshd 文章分类: 教程 创建时间: 2020年3月23日 缘由 动手 第一步:添加用户 第二步 ...

随机推荐

  1. 高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题

    在上一篇文章中,提到的Nginx的Memcached模块应用场景,主要是作为文件缓存.然后就发现了一个问题,当以字节数组方式缓存较大的文件时,缓存数据会被压缩,从而在读取的时候出现问题. (本文欢迎转 ...

  2. 多个div嵌套,获取鼠标所点击的div对象

    我选择的是冒泡事件 $(function() { $("#主divID").on("click",function(e) {//主div是必须存在的 //冒泡事 ...

  3. Boost::lexical_cast类型转换

    1.字符串->数值 C++代码 #include <boost/lexical_cast.hpp> #include <iostream> int main() { us ...

  4. cJSON结构体构建

    cJSON结构体构建 一:cJSON的构建. int create_objects() { cJSON *root, *fmt, *img, *thm, *fld; char *out; int i; ...

  5. IE6 BUG及解决方案

    1.IE6中奇数宽高的BUG 一个外部的相对定位div,内部一个绝对定位的div(right:0) 可是在IE6下查看,却变成了right:1px的效果了: 解决方案就是将外部相对定位的div宽度改成 ...

  6. Go 笔记和疑问?

    前言: 本文是学习<<go语言程序设计>> -- 清华大学出版社(王鹏 编著) 的2014年1月第一版 做的一些笔记 , 如有侵权, 请告知笔者, 将在24小时内删除, 转载请 ...

  7. 3.1.6 循环栅栏:CyclicBarrier

    package 第三章.循环栅栏CyclicBarrier; import java.util.concurrent.BrokenBarrierException;import java.util.c ...

  8. C# JSON使用过程中开发的小工具

    我在用JSON的过程中,经常要去看一下JSON的结构,而JSON串大不部分时候都是未格式化的数据,一次我不得不用一些网页上的在线解析和格式化工具来进行格式化查看,但是这些网页有时候并不好用:因此就结合 ...

  9. POJ 3581 Sequence(后缀数组)

    Description Given a sequence, {A1, A2, ..., An} which is guaranteed A1 > A2, ..., An,  you are to ...

  10. 金牌选手zzy的卡常头文件

    一定要粘上去啊,亲测快两倍 #pragma GCC diagnostic error "-std=c++11" #pragma GCC optimize("-fdelet ...