sftp账号创建和权限设置

操作前需先开启telnet服务,防止修改sshd_config后,sshd服务启不了

systemctl start telnet.socket

1 创建用户和用户组

创建sftpusers用户组,专门用于sftp用户

groupadd sftpusers 

创建test用户,将test用户的shell设置为/sbin/nologin禁止ssh登陆,且不创建用户家目录

useradd -g sftpusers -s /sbin/nologin -M test

设置用户密码

passwd test

2 编辑 /etc/ssh/sshd_config

注释Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下内容:

# override default of no subsystems
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User zjjkzc
ChrootDirectory /gfsdata/jkzc
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

多个用户,每个用户需要设置不同目录,可用以下方法:

# override default of no subsystems
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp -l INFO -f local5
Match User zjjkzc
ChrootDirectory /gfsdata/jkzc
Match User zhizhen_wz
ChrootDirectory /gfsdata/zhizhen_wz
Match User jt_wz
ChrootDirectory /gfsdata/zhizhen_wz
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

修改后重启sshd服务,

systemctl restart sshd

如果重启报错,可以通过以下命令进行测试

/usr/sbin/sshd -t

3 用户目录

创建sftp根目录,使sftp用户在该目录下活动
目录权限设置上要遵循2点:(需要格外注意)

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755。

4 测试

sftp test@ip

sftp和ftp虚账号结合使用

背景描述

目标端A通过sftp采集目录A下的a1和a2中的文件;
源端a和源端b通过ftp上传文件到目录a1和目录a2中。
背景

操作步骤:

1 账号创建

分别创建sftp账号test; ftp虚账号 vtest1、vtest2(归属于账号vtest)

2 账号权限
sftp账号权限设置:

若需要让test账号采集到vtest1和vtest2上传的文件,可将用户组vtest加到test上

usermod -a -G vtest test

设置vtest1和vtest2账号权限,增加anon_umask参数,让文件上传后的权限为644权限

 # vi /etc/vsftpd/v-conf/vtest1
local_root=/gfsdata/jkzc/jtkd
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
anon_umask=022
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值