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

news2024/11/17 3:29:44

注意两点:

一是禁止该用户通过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/aa

X11Forwarding 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.coloradmin.cn/o/707484.html

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

相关文章

Vue3 JSX 插槽、v-model 的用法以及 React JSX 的区别

前言 写这篇文章的初衷是,Vue3 JSX 部分与 React JSX 容易混淆,比如如本文所说的 slot & v-model, 如果你是第一次接触 JSX,可先阅读前面写过的 React & JSX 日常用法与基本原则 来对 JSX 有一个整体的认知以及比较两者间…

如何了解(海外抖音TiKToK)与国内抖音的区别以及介绍

一、海外抖音TK平台的优势 自从抖音在中国大受欢迎后,海外也推出了海外版抖音TK平台。尽管两者都是视频分享平台,但它们在一些方面具有明显的区别和独特的优势。下面将详细介绍海外抖音TK平台的优势以及与国内抖音的区别性。 优势: 1. 多元…

9-2 小波滤波器、去噪、增强、变换(matlab程序)

1.简述 小波去噪滤波算法是一种基于小波变换的滤波方法,它通过对信号进行小波变换来分解信号的频率分量,并根据信号的特点选择合适的阈值处理方法来去除噪声。该算法的主要思想是将信号分解成多个频率分量,根据信号的特点选择合适的阈值处理…

【IMX6ULL驱动开发学习】13.Pinctrl子系统与GPIO子系统

上一篇博客中,已经实现了设备树的添加 【IMX6ULL驱动开发学习】12.Linux驱动之设备树 这篇博客介绍Pinctrl子系统与GPIO子系统的使用 Pinctrl子系统参考文档: 内核文档链接:https://www.kernel.org/doc/Documentation/ 内核源码doc&#xff…

AD23 原理图选中元件在PCB中高亮显示

概述 项目需要,再次使用AD,在此做个笔录。 1、原理图界面 2、在原理图界面选中电容后,对应的PCB界面该电容高亮显示 3、总结 希望能帮助到有需要的攻城狮。

Linux查看日志常用操作整理

项目出现异常,要定位问题,查看日志是最常用的方法,在Linux系统查看一些日志文件,我们一般会使用tail、cat等命令,下面总结归纳一下这些常用的命令。 1、查看日志的方法 tail:tail命令应该是使用最多的&am…

探讨绿色照明与智能照明节能控制系统应用

张心志 安科瑞电气股份有限公司 上海嘉定 201801 【摘 要】随着社会经济的不断发展,人们对生活质量、环境品质越发重视。积极推广绿色智能照明,提高城市照明质量,对于改善人们居住环境意义重大。文章简要介绍了绿色照 明的基本要求、室内智…

互联网编程之简单邮箱发送程序

需求是使用Java写一个简单的邮箱发送程序。 注意需要到QQ邮箱的设置-账户中开启服务。 package org.example;import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.SimpleEmail;public class Main {public …

ospf-interface-fsm-and-neighbor-fsm

/* Interface State Machine */ struct {int (*func) (struct ospf_interface *);int next_state; } ISM [OSPF_ISM_STATE_MAX][OSPF_ISM_EVEN

网络安全技术入门(1):简介

文章目录 1.前言2.什么是网络安全技术?3.列举一些常见的网络安全技术3.1 防火墙3.2 加密技术3.3 身份认证和访问控制3.4 恶意软件防护3.5 网络监控和日志管理3.6 威胁情报和漏洞管理3.7 安全培训和意识教育 4.网络安全研究的关键技术5.网络安全防护技术有哪些&#…

计算机网络 - 应用层http协议 - http报文格式介绍(1)

前言 本篇认识和理解应用层中的http协议,了解抓包工具并进行使用,认识请求报文与响应报文,了解报文中基本键值对意思例如:Set-Cookie, 状态码等,如有错误,请在评论区指正,让我们一起交流&#…

segement and remove-SAM一键清除物体(代码安装实战项目)

结果展示 去除图片中前景物体的步骤: 1.框选 2.分割 3.分离 4.去除 项目介绍 一键帮你剔除视频内的物体,现在只需要一句话。使用Meta的SAM技术,你现在可以让视频内任意物体消失! 特点 按照提示进行分割:只需输入“黑色狗”,您就可以将您的黑色狗分割出来; 修复图…

JAVA 初识序列化与反序列化

JAVA 初识序列化与反序列化 目录 JAVA 初识序列化与反序列化初识序列化与反序列化1 概述2 特点/应用场景3 涉及到的流对象4 代码实现序列化与反序列化4.1 步骤1:创建学生类Student4.2 步骤2:创建序列化测试类 5 测试报错NotSerializableException:6 测试…

yarn与npm的区别(yarn的安装报错问题)

一、yarn 是什么,yarn 与 npm 的区别是什么? yarn 是一个软件包管理系统,Yarn 和 npm 都是包管理工具,用于管理用 JavaScript 编写的软件包,yarn的出现是为了弥补 npm的一些缺陷。yarn 与 npm 的区别 : 性能…

Matplotlib---3D图

1. 3D图 # 3D引擎 from mpl_toolkits.mplot3d.axes3d import Axes3D fig plt.figure(figsize(8, 5)) x np.linspace(0, 100, 400) y np.sin(x) z np.cos(x)# 三维折线图 axes Axes3D(fig, auto_add_to_figureFalse) fig.add_axes(axes) axes.plot(x,y,z) plt.savefi…

arduino uno r3 机械臂

1、硬件 arduino uno r3 改进板、sg90舵机(180度 x 4)、JoyStick Shield PS2游戏摇杆扩展板(或者按键 遥杆模块)、3D打印件、M3螺丝螺母(10mm 15mm 25mm )以及M2螺丝螺母。 2、接线 开发版使用DC口7V-12V 供…

AI 绘画风格迁移之青铜模型训练

前情提要 2023-07-01 周六 杭州 阴 小记: mmp,上周吃烤面筋,不小心牙签扎到口腔,结果这几天吃什么都不舒服,可是计划还是要做的,下半年要把当下 AI 的应用梳理下,自己还是喜欢那种先使用再学习相关原理&a…

C语言之数组初阶(1-4)

目录 1. 一维数组的创建和初始化 2. 一维数组的使用 3. 一维数组在内存中的存储 4. 二维数组的创建和初始化 5. 二维数组的使用 6. 二维数组在内存中的存储 7. 数组越界 8. 数组作为函数参数 数组概念:数组是一组相同类型元素的集合 1.一维数组的创建和初始化 在C语言中…

【已解决】nacos新增配置报错: 发布失败。请检查参数是否正确

解决方法: sql文件直接采取容器默认自带的创建表,复制出来即可 非容器自带sql,有多余encrypted_data_key字段 1.删掉config_info 和 his_config_info 表中的encrypted_data_key字段 2.config_info 和 his_config_info 表中非空encrypted_data…

Android12之ServiceManager::addService注册服务的本质(一百五十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…