centos 创建sftp用户访问特定目录

#创建sftp组
groupadd sftp

#新增sftp方式登录用户sftpuser,限制用户无法ssh登录服务器
useradd -g sftp -s /bin/false sftpuser &&  echo "usermima1234"|passwd sftpuser --stdin
                                            //密码带符号好像不能创建。待验证
#创建sftpuser目录data目录,sftpuser登录直接显示的是data目录 并且无法删除data,但data目录下增删改权限#都有
mkdir -p /sftpuser/data
# chown root:root /sftpuser/
# chown root:sftp /sftpuser/
# chown sftpuser:sftp /sftpuser/data 
# chmod 755 /sftpuser/


vim /etc/ssh/sshd_config

Subsystem    sftp    internal-sftp
Match User sftpuser
    ChrootDirectory /sftpuser/
    ForceCommand    internal-sftp
    AllowTcpForwarding no
    X11Forwarding no 


systemctl restart sshd


1 所需实现功能: 
 userA用户: 对/opt/sftp/userA/UploadFiles目录有读写权限,限制其只能通过sftp登录服务器,且只能在userA目录下操作 
 userB用户: 对/opt/sftp/userB/UploadFiles目录有读写权限,限制其只能通过sftp登录服务器,且只能在userB目录下操作 
 userB-r用户: 对/opt/sftp/userB/UploadFiles目录只有只读(下载)权限,限制其只能通过sftp登录服务器,且只能在userB目录下操做 

2 创建sftpuser组,新增sftp登录用户userA、userB、userB-r,限制用户无法ssh登录服务器
# groupadd sftpuser 
# useradd -g sftpuser -s /bin/false userA &&  echo "userA@123"|passwd userA --stdin
# useradd -g sftpuser -s /bin/false userB && echo "userB@123"|passwd userB --stdin
# useradd -g sftpuser -s /bin/false userB-r  && echo "userB-r@123"|passwd userB-r --stdin


3创建两个用户的登录目录,设定目录权
mkdir -p /opt/sftp/{userA,userB}/UploadFiles
# chown root:root /opt/sftp/
# chown root:sftpuser /opt/sftp/{userA,userB}/
# chown userA:sftpuser /opt/sftp/userA/UploadFiles
# chown userB:sftpuser /opt/sftp/userB/UploadFiles
# chmod 755 /opt/sftp/{userA,userB}


4修改sshd_config文件,指定不同用户登录不同目录
# vim /etc/ssh/sshd_config

注释掉下面一行
#Subsystem sftp /usr/libexec/openssh/sftp-server

#添加
Subsystem    sftp    internal-sftp
Match User userB-r
    ChrootDirectory /opt/sftp/userB
    ForceCommand    internal-sftp
    AllowTcpForwarding no
    X11Forwarding no  
Match Group sftpuser  
    ChrootDirectory /opt/sftp/%u  
    ForceCommand    internal-sftp  
    AllowTcpForwarding no  
    X11Forwarding no

5 目录权限设置要点: ChrootDirectory参数指定的目录,其权限及其所有的上级文件夹权限,属主必须是root,且只有属主能拥有写权限,即权限最大设置只能是755。
 上面之所以要创建UploadFiles目录,是因为无论userA还是userB对自己的登录目录userA和userB都只有只读权限,而通过上面第3步的权限设置,我们可以让这两个用户对自己目录下的UploadFiles拥有读写权限,而使得userB-r对UploadFiles目录只有只读权限,从而达到不同用户拥有不同的权限设定需求。</span></li>
 上面配置中,userB-r的配置必须在sftpuser组配置之前,以后添加新的用户也是如此,否则会因为参数“/opt/sftp/%u”优先匹配/opt/sftp/userB-r目录,而实际中userB-r目录是不存在,造成登录失败。

重启sshd服务: 
 # service sshd restart
 #systemctl restart sshd
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值