美文网首页
添加多个sftp账户

添加多个sftp账户

作者: 遇酒无缘 | 来源:发表于2019-04-26 17:29 被阅读0次

    操作系统: ubuntu
    sftp账户:user1,user2,user3

    一、新添加账户只有读的权限

    1.创建用户
    useradd user1
    
    2.设置用户密码
    passwd user1
    
    3.禁止该用户通过ssh登录
    usermod -s /bin/false user1
    
    4.修改用户家目录

    家目录设置为/sftp/user1/

    usermod -d /sftp/user1/ user1
    
    5.用相同的方法为user2和user3进行配置

    1-4步做完之后:
    user1的家目录为/sftp/user1/
    user2的家目录为/sftp/user2/
    user3的家目录为/sftp/user3/

    6.配置sshd_config

    vi进入配置文件vi /etc/ssh/sshd_config
    将这一行Subsystem sftp /usr/lib/openssh/sftp-server注释,在文件末尾添加如下配置

    Subsystem sftp internal-sftp
    Match user user1,user2,user3
    ForceCommand internal-sftp
    ChrootDirectory /sftp/%u
    

    %u很重要,代表不同的用户目录,不能漏了,

    如果不想用户名目录(user1)出现在家目录中,则修改家目录,如:usermod -d /sftp/pay/ user1,其他家目录也做修改:
    user1的家目录为/sftp/pay/
    user2的家目录为/sftp/product/
    user3的家目录为/sftp/staff/
    在sshd_config文件中做出相应的修改
    Subsystem sftp internal-sftp
    Match user pay,product,staff
    ForceCommand internal-sftp
    ChrootDirectory %h
    %h指用户家【主】目录

    7.重启配置完成
    service sshd restart
    
    8.验证

    sftp登录后,用cd /看看能否跳到上级目录,跳不出去就对了

    sftp user1@yourIP
    //输入密码
    cd /
    

    二、为新账户增加写的权限

    在user1目录下创建data目录,修改权限

    mkdir /sftp/user1/data
    chown -R user1:root /sftp/user1/data
    

    这样user1登录sftp账户后就可以在data目录里写文件了,但是不能对data目录操作,因为没权限。
    是不是将根目录的拥有者修改为user1就可以了呢,不知道,自己试吧

    chown user1 /sftp/user1/
    

    三、可能会遇到的问题

    sshd重启报错:Directive 'UseDNS' is not allowed within a Match block

    以下两段配置调整顺序,将配置sftp根目录【ChrootDirectory】的代码段放到文件最后

    Subsystem sftp internal-sftp

    Match user user1,user2,user3
    ForceCommand internal-sftp
    ChrootDirectory /data/wwwroot/%u

    UseDNS no
    AddressFamily inet
    PermitRootLogin yes
    SyslogFacility AUTHPRIV
    PasswordAuthentication yes

    参考:
    https://www.cnblogs.com/xjnotxj/p/6912471.html

    相关文章

      网友评论

          本文标题:添加多个sftp账户

          本文链接:https://www.haomeiwen.com/subject/xzwbgqtx.html