• centos下配置sftp且限制用户访问目录[转]


    第一步:创建sftp服务用户组,创建sftp服务根目录

    groupadd sftp
    #此目录及上级目录的所有者(owner)必须为root,权限不高于755,此目录的组最好设定为sftp
    mkdir /srv/sftp
    chown -R root:sftp /srv/sftp
    chmod -R 0755 /srv/sftp 
    

    第二步:备份sshd配置文件然后编辑

    mv /etc/ssh/sshd_config ~/backup/sshd_config_xxx                     
    vim /etc/ssh/sshd_config
    

    这一步,注释掉/etc/ssh/sshd_config文件中的此行代码:

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

    添加如下代码:

    Subsystem sftp internal-sftp
    Match Group sftp
        ChrootDirectory /srv/sftp/%u
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
    

    功能可简述为:凡是在用户组sftp里的用户,都可以使用sftp服务
    使用sftp服务连接上之后,可访问目录为/srv/sftp/username
    举个例子:

    用户test是一个sftp组的用户,那么他通过sftp连接服务器上之后,只能看到/srv/sftp/test目录下的内容
    用户test2也是一个sftp组的用户,那么他通过sftp连接服务器之后,只能看到/srv/sftp/test2目录下的内容

    第三步:添加有效的sftp用户,且给予用户写权限

    #此例将创建一个名称为test的sftp帐号
    
    #创建test的家目录:test目录的所有者必须是root,组最好设定为sftp,权限不高于755
    mkdir /srv/sftp/test
    chmod 0755 /srv/sftp/test
    chown root:sftp /srv/sftp/test
    #添加用户 使用参数 -s/sbin/nologin禁止用户通过命令行登录                  
    useradd -gsftp -d/srv/sftp/test -s/sbin/nologin test
    

    关于写权限,如下解决方案并不是很完美

    #在test目录下创建一个可以写的目录
    mkdir /srv/sftp/test/write 
    chown -R test:sftp /srv/sftp/test/write
    

    这样test用户就可以在自己家目录里的write目录下拥有写入权限了


    最后再强调一下,sftp服务的根目录的所有者必须是root,权限不能超过755(上级目录也必须遵循此规则),sftp的用户目录所有者也必须是root,且最高权限不能超过755.

  • 相关阅读:
    c#mysql批量更新的两种方法
    批处理上传错误
    c#关于Mysql MySqlBulkLoader 批量上传
    findViewById(R.id.btn_first) 给写成 R.layout.
    linearlayout 中ImageView 居中等问题
    c#npoi 报错Cannot get a numeric value from a text cell 的解决
    c#Dapper 批量插入Mysql
    c#NPOI读取excel 比interop和Microsoft.Jet.OLEDB.4.0 之类 的好的多
    Android程序入口以及项目文件夹的含义和使用总结—入门
    百度地图sdk sha1秘钥获取有种想吐的赶脚
  • 原文地址:https://www.cnblogs.com/helloyb/p/5057834.html
Copyright © 2020-2023  润新知