Linux 限制SFTP用户只能访问某个目录

1. 新建用户并设置密码

useradd suser

passwd suser   // 输入密码

2. 设置sshd配置文件

cd /etc/ssh/

cp sshd_config sshd_config.back      // 备份

vi sshd_config

// 注释该行 不注释的话会报错

#Subsystem      sftp    /usr/libexec/openssh/sftp-server    

Subsystem sftp internal-sftp

Match User suser

        ChrootDirectory /var/opt/sftp

        X11Forwarding no

        AllowTcpForwarding no

        ForceCommand internal-sftp

3. 重启sshd服务

> service sshd restart

其实我到这一步,已经成功实现了Linux 限制SFTP用户只能访问某个目录​,我的需求是只允许test用户访问mnt这个目录。​

4. 创建目录并设置权限

mkdir /var/opt/sftp

chown -R root:suser /var/opt/sftp

chmod -R 750 /var/opt/sftp

至关重要的是:

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755。

注意:由于权限是755,导致非root用户都无法在目录中写入文件,所以需要在ChrootDirectory指定的目录下建立子目录,重新设置属主和权限。

如:

chown

suser:suser /var/opt/sftp/testdir

chmod

-R 755 /var/opt/sftp/testdir

5. 测试一下

sftp

-oPort=22 sftpuser@192.168.11.180

常见问题:

1. 登陆时报错:Write failed: Broken pipe, Couldn't read packet: Connection reset by peer

原因:权限的问题,必须设置目录为属root用户,属sftp用户组。权限为750

2. 重启sshd时报错:Starting sshd: /etc/ssh/sshd_config line 141: Subsystem 'sftp' already defined.

原因:忘记把Subsystem注释,导致/etc/ssh/sshd_config同时存在有两个Subsystem节点

Linux 创建用户 限制SFTP用户只能访问某个目录的更多相关文章

  1. Linux创建用户,SFTP只允许访问指定目录

    首先创建用户 useradd lus1passwd lus1 我这里配置lus1这个用户目录,为sftp指向目录,即/home/lus1/ vim /etc/ssh/sshd_config //这个记 ...

  2. linux创建www用户组和用户

    linux创建www用户组和用户 wdcp中的nginx服务启动需要依赖www用户,因此若没有此用户就可能会启动失败.创建这个用户的方法: [root@bogon local]# id www [ro ...

  3. Linux配置虚拟主机后,只能访问到主页怎么办?

    Linux配置虚拟主机后,只能访问到主页怎么办? 今天配置了lamp后,添加了一个虚拟主机,配置http.conf后,增加虚拟主机,测试访问发现只有域名下能访问,ljt.com但是域名下所有的都访问不 ...

  4. 用ChrootDirectory限制SFTP登录的用户只能访问指定目录且不能进行ssh登录

    创建不能ssh登录的用户sftpuser1,密码用于sftp登录: sudo adduser sftpuser1 --home /sftp/sftpuser1 --shell /bin/false s ...

  5. centos 限制只能访问某个目录的php文件

    vi /etc/php.ini #编辑 open_basedir = .:/tmp/ #在380行 设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果 ...

  6. linux下创建用户组与用户 只能访问指定目录的方法 以及FTP用户配置详解

    VSFTPD 安装: -- 查看是否已经安装 VSftpd: rpm -qa | grep vsftp yum install -y vsftpd groupadd ftpuser #创建ftpuse ...

  7. vsftpd控制用户禁止访问上级目录 只能访问自己目录

    涉及文件: vsftpd.conf chroot_list_file=/etc/vsftpd.chroot_list 如果设置为 chroot_local_user=YES chroot_list_e ...

  8. linux 创建用户并限制其访问目录

    1.创建用户及访问目录 useradd test1 -d /usr/share/webapps/test -M 设置密码 passwd  test1 将访问目录权限全部赋予用户 chown -R te ...

  9. linux开启FTP以及添加用户配置权限,只允许访问自身目录,不能跳转根目录

    1.切换到root用户 2.查看是否安装vsftp,我这个是已经安装的. [root@localhost vsftpd]# rpm -qa |grep vsftpd vsftpd--.el7_2.x8 ...

随机推荐

  1. Solr——Windows下部署Solr6.6.0至Tomcat8.5.28(二)

    1,core理解 如果把solr理解为个数据库的话,那么core可以理解为数据库中的一张表,其实就是数据集合 在写本片文章之前看到网上很多教程都说需要找到solr.xml来配置core的信息,特此说明 ...

  2. 初级安全入门——Windows操作系统的安全加固

    实验网络拓扑如下: 工具简介 Kali操作系统 Kali Linux是安全业内最知名的安全渗透测试专用操作系统.它的前身就是业界知名的BackTrack操作系统.BackTrack在2013年停止更新 ...

  3. 'ascii' codec can't decode byte 0xd6 in position 0

    使用elastalert,执行python文件时报错: 经查,python命令下输出中文字符时需要将编码指定为gb2312,一开始博主也不知道是输出在控制台的信息编码格式问题,一直以为是博主自己的ya ...

  4. flask 之request用法

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...

  5. Fiddler设置抓取https请求

    环境准备 1.安装最新版本的Fiddler程序 官网地址:https://www.telerik.com/fiddler 本文写的时候,fiddler最新的版本为5.0 2.安装fiddler证书生成 ...

  6. 20165205 2017-2018-2 《Java程序设计》第八周学习总结

    20165205 2017-2018-2 <Java程序设计>第八周学习总结 教材学习内容总结 进程与线程 线程不是进程,但其行为很像进程,线程是比进程更小的执行单位. 与进程不同,线程的 ...

  7. [Unity插件]Lua行为树(十):通用行为和通用条件节点

    在行为树中,需要扩展的主要是行为节点和条件节点.一般来说,每当要创建一个节点时,就要新建一个节点文件.而对于一些简单的行为节点和条件节点,为了去掉新建文件的过程,可以写一个通用版本的行为节点和条件节点 ...

  8. asp 月末 月初

    上个月第一天:<%=dateadd("m",-1,year(date)&"-"&month(date)&"-1" ...

  9. BLOB TO CLOB

    CREATE OR REPLACE FUNCTION blob_to_clob (blob_in IN BLOB) RETURN CLOB AS v_clob CLOB; v_varchar VARC ...

  10. 【Social listening实操】作为一个合格的“增长黑客”,你还得重视外部数据的分析!

    本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 在本文中,作者引出了"外部数据"这一概 ...