Linux中创建sftp用户并限制目录权限

注意两点:

一是禁止该用户通过ssh登录,二是不需要创建家目录。家目录简单来说,就是在/home下的用户命令,默认每个用户在/home中都是有与用户名一样的文件夹。

1.创建组

groupadd sftp

2. 创建用户

useradd -g sftp -s /sbin/nologin sftpuser

 3. 设置密码

passwd sftpuser

 4. 创建成功

提示:passwd :all authentication tokens updated successfully。 

5. 创建目录 

mkdir /home/sftp

6. 目录用户

chown root:sftp /home/sftp

7. 目录权限(注:该目录权限最大为755,设置成777会报错)

chmod 755 /home/sftp

8. 创建用户sftpuser根目录,目录名为用户名

mkdir /home/sftp/sftpuser

9. 设置sftpuser目录权限

 chown -R sftpuser:sftp /home/sftp/sftpuser

(注:设置用户sftpuser,如果设置拥有者为root,表示该目录sftpuser没有权限读写,在该目录下建立其它目录,赋权给sftpuser用户读写权限;

 chmod -R 755 /home/sftp/sftpuser

 注:这里的目录sftpuser  权限也只能是755,否则无法限制目录。

配置sshd_config: 

vi /etc/ssh/sshd_config

修改如下内容,并保存退出

#注释掉这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
#添加
Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp
Match User sftpuser #匹配用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory  /home/sftp #指定sftpuser用户只能ftp到本目录Match User test2#设置两个账号
ChrootDirectory /home/aaX11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
AllowTcpForwarding no
ForceCommand internal-sftp #指定sftp命令

重启sshd服务器:

systemctl restart sshd.service


查询sshd启动状态命令

systemctl status sshd.service


sftpuser用户登录测试:

sftp -oPort=22 sftpuser@127.0.0.1

补充:

在使用中遇到的问题:(我的用户是xwcs)

1. ftp连接不上

 

查看vsftpd配置文件,查看日志打印文件位置,然而该日志中并未保存ftp的登录验证日志。因此,重新使用无法正常登录的账号登陆ftp,同时查看/var/log/secure。

# tail -f secure

 发现登录打印信息: 过期用户密码(密码过期)

pam_unix(vsftpd:account): expired password for user xwcs(password aged) 

即:用于vsftpd的系统用户的密码授权过期

解决办法:

chage -M 99999 xwcs   

 

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

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

相关文章

API 网关 vs 负载均衡:选择适合你的网络流量管理组件

由于互联网技术的发展,网络数据的请求数节节攀升,这使得服务器承受的压力越来越大。在早期的系统架构中,通常使用负载均衡来将网络流量平摊到多个服务器中,以此减轻单台服务器的压力。但是现如今,后端服务的种类在不断…

vue进阶-elementPlus

Element Plus官网 Element Plus 基于 Vue 3,面向设计师和开发者的组件库。减少开发者关注css,重心关注业务逻辑。 1. 入门 1.1 安装 npm install element-plus --save1.2 快速开始 1、main.js 引入并 use element-plus import { createApp } from …

Java开发 - Canal的基本用法

前言 今天给大家带来的是Canal的基本用法,Canal在Java中常被我们用来做数据的同步,当然不是MySQL与MySQL,Redis与Redis之间了,如果是他们,那就好办了,我们可以直接通过配置来完成他们之间的主从、主主&…

Java官方笔记13集合

Storing Data The Collections Framework is the most widely used API of the JDK. 集合不是数据类型,它是JDK的API,可以用来存储数据等,相当于数据结构。 the Collections Framework is a set of interfaces that models different way of …

DYnamics 365如何隐藏实体列表页面home page页面上的PowerBI按钮和EXCEL template按钮

如何隐藏以上两个按钮,用ribbon工具根本找不到这2个按钮。 解决方案:添加一个没用的按钮,通过调用enable方法来隐藏。 // JavaScript source code function HiddenButton() { HiddePowerBIButton(); HiddeDocumentTemplateButton(); return…

大数据周会-本周学习内容总结018

开会时间:2023.06.18 15:00 线下会议 目录 01【调研-数据分析(质量、ETL、可视化)】 02【fhzn项目】 2.1【es多维度检索接口】 2.2【AI算法库资料整理】 03【专利】 04【学习内容】 4.1【flink】 01【调研-数据分析(质量、…

svn commit 用法

转载   原文:https://blog.csdn.net/qq_39790633/article/details/103700391 使用svn进行代码的提交有两种方法:一种是通过TortoiseSVN客户端界面进行提交,另一种是通过svn commit指令提交。 方法一:通过TortoiseSVN客户端界面提…

【Linux 驱动篇(二)】LED 驱动开发

文章目录 一、Linux 下 LED 灯驱动原理1. 地址映射1.1 ioremap 函数1.2 iounmap 函数 2. I/O 内存访问函数2.1 读操作函数2.2 写操作函数 二、实验程序编写1. LED 灯驱动程序编写2. 编写测试 APP 三、运行测试1. 编译驱动程序和测试 APP1.1 编译驱动程序1.2 编译测试 APP 2. 运…

如何评估大型语言模型(LLM)?

编者按:近期几乎每隔一段时间,就有新的大语言模型发布,但是当下仍然没有一个通用的标准来评估这些大型语言模型的质量,我们急需一个可靠的、综合的LLM评估框架。 本文说明了为什么我们需要一个全面的大模型评估框架,并…

HBase(14):HBase架构

1 系统架构 1.1 Client 客户端,例如:发出HBase操作的请求。例如:之前我们编写的Java API代码、以及HBase shell,都是CLient 1.2 Master Server 在HBase的Web UI中,可以查看到Master的位置。 监控RegionServer处理RegionServer故障转移处理元数据的变更处理region的分配或…

选读SQL经典实例笔记01_检索和排序

1. 在WHERE子句中引用别名列 1.1. 当表里的某些列没有被恰当命名的时候,这个技巧尤其有用 1.2. sql select sal as salary, comm as commissionfrom empwhere salary < 5000 1.3. 内嵌视图 1.3.1. sql select *from (select sal as salary, comm …

Echarts折线图默认不显示数据圆点,鼠标hover时折线图上才显示圆点

option {......tooltip: {trigger: axis,},series: [{symbol: circle,symbolSize: 5,showSymbol: false, // 只有在 tooltip hover 的时候显示symbolitemStyle: { // symbol样式normal: {color: rgb(255, 255, 255),borderColor: rgba(255, 255, 255, 0.2), // symbol边框颜色…