首页 > 其他分享 >搭建sftp,使用户只能访问特定的目录

搭建sftp,使用户只能访问特定的目录

时间:2024-12-25 17:57:44浏览次数:3  
标签:sftp 22% 用户 目录 home 权限 example 搭建

在Linux系统中,为SFTP用户指定访问目录通常涉及到创建一个chroot环境。以下是一个简单的步骤和示例代码,用于创建一个SFTP用户并限制其访问目录:
1.创建一个新的用户组(如果已存在,可以跳过这一步):

1 groupadd sftpgroup

2.创建SFTP用户并添加到新组:

1 useradd -G sftpgroup -s /sbin/nologin sftpuser

3.设置用户密码:

1 passwd sftpuser

4.创建SFTP用户的目录并设置适当的权限(例如,755表示用户有读写权限,其他用户只有读权限):

1 mkdir -p /home/sftpuser/files
2 chown root:sftpgroup /home/sftpuser
3 chmod 755 /home/sftpuser
4 chown sftpuser:sftpgroup /home/sftpuser/files

5.编辑sshd_config文件,启用Chroot并指定用户的家目录:

1 nano /etc/ssh/sshd_config

添加或修改以下行:

1 Match Group sftpgroup
2    ChrootDirectory /home/%u
3    ForceCommand internal-sftp
4    AllowTcpForwarding no
5    X11Forwarding no

6.重启SSH服务以应用更改:

1 systemctl restart sshd

现在,sftpuser只能访问其/home/sftpuser/files目录,无法访问其他文件系统路径。这样就实现了为SFTP用户指定访问目录的需求。

 

以上是百度AI给出的解答。

 

下面再看下CSDN上给出的解答:

https://blog.csdn.net/songsongxiaolu/article/details/139806862

 

另外,在nano编辑器中保存并退出的步骤如下‌(百度AI:nano命令怎么保存退出):‌

1.‌保存更改‌:当你完成编辑后,首先需要保存你的更改。按下 Ctrl + O(即 Control 键和字母O键同时按),这是写出文件的命令。如果不需要改变文件名,直接按 Enter 键确认。
2.‌退出编辑器‌:文件保存后,你可以退出nano编辑器。按下 Ctrl + X(即 Control 键和字母X键同时按),这个操作会关闭编辑器。
‌如果在编辑过程中决定不保存更改并退出,可以直接按 Ctrl + X,编辑器会询问你是否保存更改,此时你可以选择不保存直接退出‌。
‌nano命令的基本使用方法‌:
1)打开文件:在终端中输入 nano <文件名>,例如 nano test.txt。如果文件不存在,nano会在目标目录中创建一个新文件。
2)编辑文件:在打开的文件中进行编辑,可以使用键盘输入文本。
3)保存并退出:按照上述步骤保存更改并退出编辑器。

 

在Linux系统中,给某个用户赋予目录权限通常涉及以下步骤:

 

  1. ‌确定要赋予权限的目录路径‌:
    确定你要赋予权限的具体目录路径,例如/home/example_directory

  2. ‌确定要赋予权限的用户‌:
    确定你要赋予权限的用户名,例如example_user

  3. ‌使用chmodsetfacl命令来设置目录权限‌:

  • 使用chmod命令设置基本权限:

    1 sudo chmod -R 755 /home/example_directory

    这将赋予目录所有者(以及属于同一组的用户)读、写和执行权限,而给其他所有用户读取和执行权限。但chmod命令不提供细粒度的用户级权限控制。

  • 使用setfacl命令设置访问控制列表(ACL)权限:

    1 sudo setfacl -m u:example_user:rwx /home/example_directory

    这将为example_user赋予对/home/example_directory目录的读、写和执行权限。

  1. ‌验证权限是否已成功赋予‌:
  • 使用ls -l命令查看目录权限:

    1 ls -ld /home/example_directory

    这将显示目录的权限设置,但不会显示ACL。

  • 使用getfacl命令查看ACL权限:

    1 getfacl /home/example_directory

    这将显示包括ACL在内的所有权限设置,你可以在这里检查example_user的权限是否被正确赋予。

通过以上步骤,你可以成功地在Linux系统中为某个用户赋予特定目录的权限。请确保在执行这些操作时具有足够的权限,通常需要使用sudo来执行这些命令。

参考以下链接

https://yr7ywq.smartapps.baidu.com/?_chatQuery=linux%E7%BB%99%E6%9F%90%E4%B8%AA%E7%94%A8%E6%88%B7%E8%B5%8B%E4%BA%88%E7%9B%AE%E5%BD%95%E6%9D%83%E9%99%90&searchid=16356983437551056596&_chatParams=%7B%22agent_id%22%3A%22c816%22%2C%22content_build_id%22%3A%223a87b27%22%2C%22from%22%3A%22q2c%22%2C%22token%22%3A%22UGlGZHdpN0lzYXNVbS9Gb1JoeVNNWXRmOGI3Q0R2VFNVZlJSWlMzOW9SSlM5ZlYxWmJMbjNXOEwvQ3ppY1hpZ2gwT1E3ZHJYSDYraFBRQUVGd3pqVlRVaHlObDJScEFHdHI3bFFWMWFudDNjamVBSnJlcWRLZ3ErcWJESitZZzF2VHZCejV5YWdURnpWVkQ0SHlYUW5aM3p2T0JCbDgwd0xHUWJsQWJRVmhpeUliK2gxcnE3WnVsVVMzdUZPSksz%22%2C%22chat_no_login%22%3Atrue%7D&tplname=ai_agent_distribute&srcid=1599&lid=e2ffadc6002db6d4&order=3&_swebScene=3711000610001000

 

 

 

 

 

 

标签:sftp,22%,用户,目录,home,权限,example,搭建
From: https://www.cnblogs.com/zhncnblogs/p/18631142

相关文章

  • Next.js 14 基础入门:从项目搭建到核心概念
    Next.js14带来了许多激动人心的新特性,包括局部渲染、ServerActions增强等。作为一名前端开发者,我最近在项目中升级到了Next.js14,今天就来分享一下从项目搭建到实际应用的完整过程。项目初始化首先,让我们创建一个全新的Next.js14项目:#使用create-next-app创建项目n......
  • 782-批量移动指定文件夹A下所有文件到A文件夹根目录下
    782-批量移动指定文件夹A下所有文件到A文件夹根目录下指定文件夹A下有BCDE…等文件夹,将所有文件(包括子孙文件夹下文件)移动A文件夹根目录下,删除空文件夹【1】、支持的文件格式:所有文件【2】、是否支持子文件夹穿透:支持选择对应的选项,遇到同名文件时以不同的方式进行处理......
  • 搭建npm私有仓库——verdaccio
    前言 Verdaccio是一个简单的、零配置要求的本地私有npm注册表。无需整个数据库即可开始!Verdaccio开箱即用,带有自己的小型数据库,并且能够代理其他注册表(例如npmjs.org),并在此过程中缓存下载的模块。对于那些希望扩展其存储功能的人,Verdaccio支持各种社区制作的插件,以连接到......
  • Prometheus+Grafana+zabbix搭建的监控平台
    Prometheus+Grafana+zabbix搭建的监控平台目录Prometheus+Grafana+zabbix搭建的监控平台1.介绍1.2Grafana是什么?2.Prometheus+Grafana安装2.1组件2.2安装包下载2.4Prometheus安装Docker部署PrometheusPrometheus相关介绍Docker部署Prometheus说明搜索镜像拉取镜像配置配置......
  • 依赖注入目录是什么?
    依赖注入目录的作用在程序中,模块或功能之间经常需要用到其他模块,就像“卧室需要床”一样。直接自己创建这些依赖可能会让代码很难维护,而依赖注入可以帮我们自动把需要的“工具”提供给模块。不自己造:模块不需要关心依赖的细节,直接“拿来用”。解耦:减少模块之间的直接依赖,让代......
  • 【Linux系列】获取当前目录
     ......
  • Flutter学习笔记:开发环境搭建
    本文更新于2024-12-15,使用Flutter3.3.3,操作系统为Windows10。安装Flutter下载Flutter。官网下载页面为:https://docs.flutter.dev/get-started/install/windows。本文使用的版本的下载地址为:https://storage.googleapis.com/flutter_infra_release/releases/stable/windows/......
  • Patroni 流程整理目录-初始化
    Patroni流程整理目录-初始化2.初始化数据库的初始化在Postgresql类的__init__函数中,在这个函数中对当前的数据库做了一系列的调整,初始化一系列实例、设置一些配置信息,查看状态和更新信息等等。而将节点加入集群或者初始化集群时,则是调用ha类中的函数进行初始化,如post_bootstra......
  • 搭建telnet服务
     步骤1:关闭防火墙 关闭selinux,0表示临时关闭 永久关闭selinux,需要重启机器才能生效 步骤2:查看本地yum源是不是好着的 步骤3:软件三部曲查看talnet相关的软件包 检查是否安装xinetd服务 同时安装talnet服务端和xinetd两个软件包 确认是否安装成功 ......
  • ComfyUI喂饭教程!一个适合新手的工作流搭建思路
    自己动手,丰衣足食,自己从头到尾搭建一个工作流,才是真正掌握ComfyUI精髓的王道。我们马上开始吧!一、明确目标,分析问题在动手之前,我们需要先明确自己的需求和目标,这也是完成一个工作流搭建的首要步骤。假设我现在要做一个露营活动海报,我手头有这样一张图片,但我想要的表现形......