SFTP多用户权限 linux环境 一站式解决方案

文章目录

          • 一、方案1
            • 1. 创建用户组
            • 2. 添加用户并设置为sftp组
            • 3. 设置用户密码
            • 4. 创建用户目录。并设置权限
            • 5. 修改SSH配置
            • 6. 在/etc/ssh/sshd_config添加用户组配置
            • 7. 最后重启SSH
          • 二、方案2(推荐)
            • 2.1. 创建用户组
            • 2.2. 添加用户并设置为sftp组
            • 2.3. 设置用户密码
            • 2.4. 创建用户目录。并设置权限
            • 2.5. 修改SSH配置
            • 2.6. 在/etc/ssh/sshd_config添加用户组配置
            • 7.最后重启SSH

linux 文件服务器需要创建多个sftp用户,每个用户分别给予各个厂商,用户之间无权限操作对方目录的权限。
例如:sftp1用户无法操作sftp2用户的目录以及下面的数据文件,相反,一样!

一、方案1

基于sftp组,每个用户之间无操作对方目录以及文件的权限,但是,双方用户目录可见。
例如:sftp1用户可以看到sftp2用户的操作目录,只是无权限访问

1. 创建用户组
groupadd sftp
2. 添加用户并设置为sftp组
useradd -g sftp -s /sbin/nologin -M sftp1    
useradd -g sftp -s /sbin/nologin -M sftp2注:(/sbin/nologin为禁止登录shell的用户)
3. 设置用户密码
passwd sftp1
passwd sftp2
4. 创建用户目录。并设置权限
mkdir -pv /home/sftp/sftp1
mkdir -pv /home/sftp/sftp2chown sftp1:sftp /home/sftp/sftp1
chown sftp2:sftp /home/sftp/sftp2chmod 700 /home/sftp/sftp1
chmod 700 /home/sftp/sftp2usermod -d /home/sftp/sftp1 sftp1
usermod -d /home/sftp/sftp2 sftp2
5. 修改SSH配置
先备份配置文件
cp -avi /etc/ssh/sshd_config /etc/ssh/sshd_config_bakvim /etc/ssh/sshd_config
找到关键词 Subsystem
将
Subsystem      sftp    /usr/libexec/openssh/sftp-server
修改为
Subsystem sftp internal-sftp
6. 在/etc/ssh/sshd_config添加用户组配置
Match Group sftp   #限制的用户组
X11Forwarding no  
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /home/sftp  #所有sftp用户的根目录,也就是sftp组的根目录
7. 最后重启SSH
service sshd restart
二、方案2(推荐)

基于sftp用户,每个用户之间操作目录不可见,无操作对方目录以及文件的权限。
例如:sftp1用户看不到sftp2用户的操作目录,也无权限操作对方的目录以及数据文件。

2.1. 创建用户组
groupadd sftp
2.2. 添加用户并设置为sftp组
useradd -g sftp -s /sbin/nologin -M sftp1    
useradd -g sftp -s /sbin/nologin -M sftp2注:(/sbin/nologin为禁止登录shell的用户)
2.3. 设置用户密码
passwd sftp1
passwd sftp2
2.4. 创建用户目录。并设置权限
mkdir -pv /home/sftp/sftp1
mkdir -pv /home/sftp/sftp2chown root:root /home/sftp/sftp1
chown root:root /home/sftp/sftp2mkdir /home/sftp/sftp1/send
mkdir /home/sftp/sftp2/sendchown sftp1.sftp /home/sftp/sftp1/send
chmod 775 /home/sftp/sftp1/sendchown sftp2.sftp /home/sftp/sftp2/send
chmod 775 /home/sftp/sftp2/send
2.5. 修改SSH配置
先备份配置文件
cp -avi /etc/ssh/sshd_config /etc/ssh/sshd_config_bakvim /etc/ssh/sshd_config
找到关键词 Subsystem
将
Subsystem      sftp    /usr/libexec/openssh/sftp-server
修改为
Subsystem sftp internal-sftp
2.6. 在/etc/ssh/sshd_config添加用户组配置
#sftp1用户配置
Match User sftp1
ChrootDirectory /home/sftp/sftp1 #sftp1用户登录的根目录
AllowTcpForwarding no
X11Forwarding no
AllowTcpForwarding no
ForceCommand    internal-sftp#sftp2用户配置
Match User sftp2
ChrootDirectory /home/sftp/sftp2 #sftp2用户登录的根目录
AllowTcpForwarding no
X11Forwarding no
AllowTcpForwarding no
ForceCommand    internal-sftp
7.最后重启SSH
service sshd restart

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519116.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux RssFile什么含义,什么是RSS

导读RSS 指 Really Simple Syndication(真正简易联合),RSS 的 元素可描述 RSS feed。RSS 元素RSS 的 元素可描述 RSS feed。请看下面这个 RSS 文档&#xff1a;<?xml version"1.0"encoding"UTF-8"?>菜鸟教程首页http://www.runoob.com免费编程教程…

linux CPU、内存、I/O、磁盘等监控统一解决方案

文章目录一、效果图二、软件安装配置2.1. nmon安装2.2. 权限赋予2.3. 脚本制作2.4. 脚本运行三、解析监控文件3.1. 监控文件下载3.2. 解析监控文件3.3. 监控指标总览补充内存计算方式需求背景: 性能测试过程中监控服务器健康(CPU、内存、I/O、磁盘)指标的状态 一、效果图 二、软…

数据科学家常见的5个SQL面试问题

作者 | Alexei Ledenev翻译 | 天道酬勤&#xff0c;责编 | Carol出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;在任何以数据为中心的工作中&#xff0c;对SQL有深刻的理解都是成功的关键&#xff0c;尽管这不是工作中最有趣的部分。事实上&#xff0c;除了…

java复制文件夹中的所有文件和文件夹到另一个文件夹中

package com.gblfy.ly.controller;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;public class FileUtils {/*** 复制整个文件夹内容* param oldPath String 原文件路径 如&#xff1a;c:/fqf* param ne…

c语言程序滞留,c语言有个可以使程序延时的语句是什么?

满意答案hsgfzdg99推荐于 2017.09.11采纳率&#xff1a;57% 等级&#xff1a;9已帮助&#xff1a;1169人Sleep函数:功 能: 执行挂起一段时间  用 法: unsigned sleep(unsigned seconds);  注意:  在VC中使用带上头文件#include  在VC中,Sleep中的第一个英文字符为大写的…

从濒临解散到浴火重生,OceanBase 这十年经历了什么?

阿里妹导读&#xff1a;谈及国产自研数据库&#xff0c;就不得不提 OceanBase。与很多人想象不同的是&#xff0c;OceanBase 并非衔着金钥匙出生的宠儿。相反&#xff0c;它曾无人看好、困难重重&#xff0c;整个团队甚至数度濒临解散。 从危在旦夕到浴火重生&#xff0c;Ocean…

两成开发者月薪超 1.7 万、算法工程师最紧缺! | 中国开发者年度报告

整理 | 郭芮 责编 | 唐小引 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; “求知若饥&#xff0c;虚心若愚”——这个原本出自《全球概览》的俳句&#xff0c;因为乔布斯在斯坦福大学毕业演讲中的引用而备受推崇&#xff0c;流传成为 IT 界的至理名言之一。在…

拒绝版权流氓!阿里巴巴重磅发布免费商用字体

UCAN 2019 设计大会在杭州国际博览中心开幕&#xff0c;超过 4000 位来自世界各地的设计师参与了这场阿里巴巴设计举办的盛会。 继去年品牌升级为阿里巴巴设计&#xff08;Alibaba Design&#xff09;后&#xff0c;阿里巴巴经济体设计委员会委员长杨光&#xff08;青云&#…

全站CSRF漏洞

文章目录二、解决方案2.1. 创建CSRF防御统一管理2.2. 创建csrfToken校验2.3. 加密工具类2.4. 查询实战2.5. 添加和更新实战默认guns不支持添加headers的需要添加ax2二、解决方案 2.1. 创建CSRF防御统一管理 package com.gblfy.sys.config.web.csrf;import com.gblfy.base.uti…

c语言gets和getchar区别,c语言中关于getchar()、getchar()和gets().......

getchar函数从标准输入读取一个字符并返回它的值&#xff0c;如果输入中不再存在任何字符&#xff0c;函数就会返回常量EOF(在stdio中定义)用于提示文件的结尾。getchar()&#xff0c;getchar()和gets()用法及缓冲区溢出&#xff1a;getchar有一个int型的返回值&#xff0c;当程…

AutoML数据增广

DeepAugment是一个专注于数据扩充的自动化工具。 它利用贝叶斯优化来发现针对您的图像数据集定制的数据增强策略。 DeepAugment的主要优点和特点是&#xff1a; 降低CNN模型的错误率(WRN-28-10显示CIFAR10的错误率降低了60%)通过自动化流程可以节省时间比谷歌之前的解决方案—…

基于TensorFlow.js的JavaScript机器学习

Credits: aijs.rocks 虽然python或r编程语言有一个相对容易的学习曲线&#xff0c;但是Web开发人员更喜欢在他们舒适的javascript区域内做事情。目前来看&#xff0c;node.js已经开始向每个领域应用javascript&#xff0c;在这一大趋势下我们需要理解并使用JS进行机器学习。由…

linux定时脚本

#1.当前用户编辑调度文件 crontab -e #2.当前用户添加调度频次 0 4 * * * /bin/sh /app/jiazai/sql_loadv1.0/dbloadupgrade.sh#3.查看当前用户调度任务 crontab -l重启调度服务 /sbin/service crond restart 提醒&#xff1a;请切换root用户执行

国嵌c语言深度,国嵌C语言深度剖析班(第一期)-国嵌

国嵌C语言深度剖析班(第一期)共20个课程&#xff0c;包含源码及教程&#xff0c;主要讲了基本数据类型分析、auto,register,static分析、if,switch,do,while,for分析等&#xff0c;本教程提供1-5节在线学习&#xff0c;全套教程可以在本站下载学习。完整目录如下&#xff1a;第…

阿里巴巴、支付宝员工都在用的知识管理工具,究竟有何特别?

公司内各部门工作文档难以共享&#xff1f;缺乏高效便捷的团队协作工具&#xff1f;文档放到在线云平台担心安全&#xff1f;…… 2019年4月22日&#xff0c;蚂蚁金服旗下知识创作与分享工具语雀发布“空间功能”。语雀在支持在线文档编写、多人协作、灵活的团队管理和金融级安…

探索处理数据的新方法,8 个重点带你搞懂云数据库——DBaaS(数据库即服务)到底是什么!...

作者| Rohan Wadiwala、Mangesh More翻译 | 天道酬勤&#xff0c;编辑 | Carol出品| CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;在分析的世界中&#xff0c;网站的每次点击都是数据分析的候选对象&#xff0c;显然&#xff0c;这会涉及大量的数据生成。对于海…

阿里开发者招聘节 | 面试题05: 关于epoll和select的区别,哪些说法是正确的?

为帮助开发者们提升面试技能、有机会入职阿里&#xff0c;云栖社区特别制作了这个专辑——阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的面试真题这一次将陆续放出&#xff08;面试题官方参考答案将在专辑结束后统一汇总分享&#xff0c;点此进入答题并围观他…

springboot + shiro 尝试登录次数限制与并发登录人数控制

文章目录一、尝试登录次数控制实现1. 实现原理2. maven依赖3. ehcache配置4. RetryLimitCredentialsMatcher5. Shiro配置修改6. realm添加认证器7. 并发在线人数控制实现8. ehcache配置9. shiro配置10. shiro过滤链中加入并发登录人数过滤器11. 源码地址12. 参考博客一、尝试登…

np.where多个筛选条件

a [0,1,2,3,4,5] 想要筛选出“大于等于2并且小于等于4”的数字下标&#xff0c;首先尝试了如下写法 import numpy as np a np.arange(6) print(np.where(a>2 & a<4))程序会报错 Traceback (most recent call last):File "C:\Program Files\JetBrains\PyCha…

c语言printf里的自增,笔试题记录:C语言——函数printf()的执行机制;先自增与后自增的区别;取值运算与自增运算的优先级...

考点&#xff1a;函数printf()的执行机制&#xff1a;参数按照从右至左的顺序入栈&#xff0c;在调用时出栈&#xff1b;考察运算符“”在变量之前、变量之后的运算机制&#xff0c;即是先赋值/还是先自增*(p)、*(p)、*(p1)之间的区别后面两项主要是考察&#xff1a;取值运算与…