搭建SFTP服务器,允许一个或多个用户拥有一个或多个目录的rwx权限
1、引言
sftp可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
2、搭建SFTP前期准备
OS : CentOS/RHEL 7/6
Openssh version 4.8以上
目的:实现某一个或多个用户只可以访问一个或多个目录。(User kunlun对目录A和B有rwx权限,User kunlunsun 对目录C和B拥有rwx权限)
#ssh -V #查看openssh版本
3、创建管理组和用户
#groupadd sftp
#useradd -g sftp -s /bin/false kunlun # /bin/false 没有可以登录的shell,只能使用sftp登录
#passwd kunlun
#useradd -g sftp -s /bin/false kunlunsun
#passwd kunlunsun
创建组(用于管理目录和授权用户的组)
#groupadd A
#groupadd B
#groupadd C
4、创建要访问的目录
#mkdir -p /Data/SFTP/A/
#mkdir -p /Data/SFTP/B/
#mkdir -p /Data/WEB/C/
5、配置SFTP服务器
注:由于上述中讲到sftp与ssh的关系,所以我们进行以下操作。
# vim /etc/ssh/sshd_config #进入配置文件
#Subsystem sftp /usr/libexec/openssh/sftp-server #注释掉
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /Data/
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
注:ChrootDirectory /Data/ 目录属主(指User)和属组(Group组)必须都是root。
可以通过getfacl /Data查看owner(user)和group(group)
6、将用户加入到要访问的“目录”组
#usermod -a -G A kunlun #将用户加入到要访问的目录组
#usermod -a -G B kunlun
#usermod -a -G B kunlunsun
#usermod -a -G C kunlunsun
7、修改目录的owner和group
==============User kunlun的授权=========
#chgrp A A/
#chmod 770 A/
#chmod g+w A/
#chown kunlun:A A/
#chgrp B B/
#chmod 770 B/
#chmod g+w B/
#chown kunlun:B B/
==============User kunlunsun授权=========
#chgrp C C/
#chmod 770 C/
#chmod g+w C/
#chown kunlunsun:C C/
注:由于前面已经给过目录B做过授权所以只需要将用户kunlunsun加入到目录B的组即可(加入组的操作在第6步完成)
通过getfacl B/或A/目录查看目录的owner和group权限
亲测:经过以上操作,用户将对相应的目录有rwx权限
另:
通过setfacl授权,经过测试无效果。
个人感觉这种做法还可以更简便,欢迎各位多多测试,有更简便的方法欢迎留言,有问题也可以留言提出,看到会第一时间回复。
搭建SFTP服务器,允许一个或多个用户拥有一个或多个目录的rwx权限的更多相关文章
- Linux Centos 6.6搭建SFTP服务器
Linux Centos 6.6搭建SFTP服务器 在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的 ...
- Linux ---搭建SFTP服务器
在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的版本 ssh -V 使用ssh -V 命令来查看op ...
- windows 上搭建 sftp 服务器 -freesshd全过程( 在linux上部署逐浪CMS的必读教程)
文章标题: windows 上搭建 sftp 服务器 - freesshd全过程 关键字 : freesshd 文章分类: 教程 创建时间: 2020年3月23日 缘由 动手 第一步:添加用户 第二步 ...
- freeSSHD在windows环境下搭建SFTP服务器
freeSSHD在windows环境下搭建SFTP服务器 0 建议现在windows环境下安装cygwin,否则在windows环境下cmd模式使用不了sftp去连接,可以利用win scp去测试连接 ...
- python练习:编写一个程序,要求用户输入一个整数,然后输出两个整数root和pwr,满足0<pwr<6,并且root**pwr等于用户输入的整数。如果不存在这样一对整数,则输入一条消息进行说明。
python练习:编写一个程序,要求用户输入一个整数,然后输出两个整数root和pwr,满足0<pwr<6,并且root**pwr等于用户输入的整数.如果不存在这样一对整数,则输入一条消息 ...
- linux搭建sftp服务器
转自:http://blog.csdn.net/superswordsman/article/details/49331539 最近工作需要用到sftp服务器,被网上各种方法尤其是权限设置问题搞得晕头 ...
- Windows搭建SFTP服务器
1.项目需要搭建一个SFTP服务器,网上搜了一下,用的是freeSSHd软件,网上查一下我用的是1.3.1版本https://freesshd.updatestar.com/网址自己下载即可. 2.安 ...
- Centos6搭建sftp服务器
一.创建sftp相关用户和目录 [root@mail samba]# useradd -s /sbin/nologin -M sftp_user #创建一个系统用户,按需设置登录的shell和家目录 ...
- linux如何搭建sftp服务器
工具/原料 centos7.2_x64 方法/步骤 创建sftp组 groupadd sftp 创建完成之后使用cat /etc/group命令组的信息 2 创建一个sftp用户mysft ...
随机推荐
- .NetCore下ES查询驱动 PlainElastic .Net 升级官方驱动 Elasticsearch .Net
1.背景 由于历史原因,笔者所在的公司原有的ES查询驱动采用的是 PlainElastic.Net, 经过询问原来是之前PlainElastic.Net在园子里文档较多,上手比较容易,所以最初作者选用 ...
- springboot的邮件服务
作者:纯洁的微笑出处:http://www.ityouknow.com/ 版权归作者所有,转载请注明出处 springboot仍然在狂速发展,才五个多月没有关注,现在看官网已经到1.5.3.RELEA ...
- HomeBrew 安装
HomeBrew中文地址 通过以上链接把安装地址拿到, 这个地址可能会变, 再次使用需要重新获取: /usr/bin/ruby -e "$(curl -fsSL https://raw.gi ...
- vue+ elementUI 打包发布到服务器后,element-icons.woff文件404
vue项目打包部署到服务器,静态资源文件404 js文件404问题 原因:打包的项目静态资源的路径需要设置为绝对路径.如果是相对路径会出错 解决办法:修改config/index.js文 ...
- DesignPattern系列__01SingletonResponsibility
单一职责原则 单一职责原则:一个类应该只有一个原因引起改变,即一个类应该只负责一个业务逻辑. 问题由来:类T负责t1, t2两个职责,当因为t1j对类T修改的时候,可能导致类T出现问题而影响职责t2. ...
- Rust写时复制Cow<T>
写时复制(Copy on Write)技术是一种程序中的优化策略,多应用于读多写少的场景.主要思想是创建对象的时候不立即进行复制,而是先引用(借用)原有对象进行大量的读操作,只有进行到少量的写操作的时 ...
- linux字符设备驱动中内核如何调用驱动入口函数 一点记录
/* 内核如何调用驱动入口函数 ? *//* 答: 使用module_init()函数,module_init()函数定义一个结构体,这个结构体里面有一个函数指针,指向first_drv_init() ...
- java中System.out.println()打印输出结果
疑点:syso()是打印输出语句,打印的是什么? syso()不同情况下打印输出的结果不一样: 1. package com.briup; public class Syso { public sta ...
- python虚拟环境完美部署
一.前言 预处理 建议仔细看完本文章之后在进行操作,避免失误,本环境可以用于生产环境,有利于生产环境python之间的环境隔离,互相不会产生环境冲突:pyenv和pyenv-virtualenv可以完 ...
- Appium+python自动化(二十八)- 滑呀滑,滑到奈何桥喝碗孟婆汤 - 高级滑动(超详解)
简介 奈何桥上叹奈何,三生石前憾三生,彼岸花下非彼岸,奈何三生彼岸人. 相传过了鬼门关便上一条路叫黄泉路,路上盛开着只见花,不见叶的彼岸花.花叶生生两不见,相念相惜永相失,路尽头有一条河叫忘川河,河上 ...