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. gulp安装,淘宝镜像

    命令:express -e ./ express表示安装express -e表示使用ejs作为模板 ./表示当前目录中 (使用上面的命令之前我们应该使用npm安装express框架 sudo npm ...

  2. Java之ConcurrentHashMap

    由于工作中使用到了ConcurrentHashMap,然后查了一波资料,最后整理如下: 1. 描述: ConcurrentHashMap是在Java1.5作为HashTable的替代选择新引入的,是c ...

  3. 零基础学习python_字典(25-26课)

    今天学到后面的知识,突然发现之前学习到的字典列表啥的都有点忘了,打算补一下之前学到的字典,到时候你看的时候,字符串.列表.字典.元祖这几个没啥顺序,刚开始学的时候了解下方法,当然你可以死记硬背下,后面 ...

  4. python-运算符重载

    1. __item__ class X: def __init__(self, data=None): self.data = data or [] # 同样可用于 dict def __setite ...

  5. [Unity动画]03.动画事件

    1.找到动画,添加动画事件 2.在脚本中添加回调方法 TestAnimator.cs using UnityEngine; public class TestAnimator : MonoBehavi ...

  6. fabric-network_setup.sh安装脚本分析

    在进行镜像安装前,提供了一个sample脚本的下载,可以使用该脚本进行容器的启停.这里对该脚本进行分析. fabric/release/linux-amd64/network_setup.sh 脚本提 ...

  7. 转:Java对象序列化

    Java对象序列化 当两个进程在进行远程通信时,彼此可以发送各种类型的数据.无论是何种类型的数据,都会以二进制序列的形式在网络上传送.发送方需要把这个Java对象转换为字节序列,才能在网络上传送:接收 ...

  8. 30.纯 CSS 创作一个晃动的公告板

    原文地址:https://segmentfault.com/a/1190000014983030 感想: 绝对定位+动画 HTML代码: <div class="signboard&q ...

  9. js分钟数转天-时-分

    //js格式化分钟转为天.时.分 function formatMinutes(minutes) { )); ? Math.floor((minutes - day * ) / ) : Math.fl ...

  10. Maven父工程

    1.创建Maven工程时 Packaging 选项为 pom 2.父工程目录结构只有pom.xml(父工程不进行编码) 3.需要的依赖信息在父工程中定义,子模块继承 5.将各个子模块聚合到一起 6.将 ...