zoukankan      html  css  js  c++  java
  • Linux教程之配置权限受限制的SFTP

    SFTP 在Linux下是一个很方便很安全的文件传输工具,我常常用它在Linux服务器上替代传统的ftp来传输文件。众所周知SFTP账号是基于SSH账号的,默认情况下访问服务器的权限很大,下面的教程就是教你像ftp那样限制SFTP账号相关的访问权限。

    具体实施步骤

    1. 我们需要创建一个用户组,专门用于sftp用户

    $ groupadd sftpusers

    2. 我们创建一个用户test

    $ useradd -s /bin/false -G sftpuser test

    注意这里我们将test用户的shell设置为/bin/false使他没有登陆shell的权限

    3. 编辑 /etc/ssh/sshd_config

    找到Subsystem这个配置项,将其修改为

    Subsystem  sftp  internal-sftp

    然后再到文件最尾处增加配置设定属于用户组sftpusers的用户都只能访问他们自己的home文件夹

    Match Group sftpusers

    ChrootDirectory %h

    ForceCommand internal-sftp

    AllowTcpForwarding no

    保存并关闭文件

    4. 修改test用户home文件夹的权限,让其属于root用户

    chown root ~test

    5. 重启sshd服务

    $ service sshd restart

    6. 测试用户账号

    $ ssh test@localhost

    连接会被拒绝或者无法登陆

    $ sftp tesst@localhost

    登陆后你会发现你的账号无法切换到除自己home目录之外的地方的

    常见问题:

    如果你链接服务器的时候出现下面的提示:

    Write failed: Broken pipe                                                                                               

    Couldn't read packet: Connection reset by peer

    这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755

  • 相关阅读:
    三级联动
    投票系统
    增删改查
    PHP基础
    查询练习
    高级查询
    高级查询练习题
    0510课堂02三元运算符,跳转语句,循环结构
    0510课堂
    050602课堂css3旋转、过渡、动画
  • 原文地址:https://www.cnblogs.com/zhangeamon/p/5387003.html
Copyright © 2011-2022 走看看