(以下内容以创建两个用户为例,若仅需要单个用户,则无需进行userB的相关操作)
1. 首先使用root用户初始化用户根目录以及数据文件目录
a. 创建服务器上所有sftp用户的根目录usrsftp
mkdir /usrsftp/
b. 创建当前用户(userA和userB)的根目录
mkdir /usrsftp/userA
mkdir /usrsftp/userB
c. 在根目录下创建几个文件夹
mkdir /usrsftp/userA/temp1
mkdir /usrsftp/userA/temp2
mkdir /usrsftp/userB/temp3
mkdir /usrsftp/userB/temp4
2. 目录创建好后按以下步骤设置权限
a. 创建userA用户名
useradd -s /sbin/nologin -M userA
b. 设置密码
passwd userA
c. 同理创建一个用户userB
d. 修改sshd_config配置文件
vi /etc/ssh/sshd_config
#sftp 配置
Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp
Match User userA #匹配用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /usrsftp/userA #用chroot将只用用户的根目录
Match User userB #匹配用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /usrsftp/userB #用chroot将只用用户的根目录
X11Forwarding no #如果允许用户端口转发就注释掉
AllowTcpForwarding no #如果允许用户端口转发就注释掉
ForceCommand internal-sftp #指定sftp命令
e. 重启sshd服务
service sshd restart
显示 Redirecting to /bin/systemctl restart sshd.service 代表重启服务成功
f. 设置userA和userB用户的根目录访问权限
chown userA:userA /usrsftp/userA/*
chmod 777 /usrsftp/userA/*
chown userB:userB /usrsftp/userB/*
chmod 777 /usrsftp/userB/*
g. 目录拥有者都只能是root
chown root:root /usrsftp/userA
chown root:root /usrsftp/userB
chmod 755 /usrsftp/userA(不可以具有群组写入权限)
chmod 755 /usrsftp/userb
以上配置好后使用FTP客户端连接工具,选择SFTP加密传输协议连接测试文件上传下载。
注:
1). 如仅创建一个用户,则不用进行userB的所有操作,若需要创建第二个用户(如:userB),首先初始化目录,然后重复操作a-b步骤,步骤d修改sshd_config文件时只需增加Match User和ChrootDirectory的属性配置,然后进行e、f、g步骤
2). 此用户创建方式为SFTP文件传输方式,端口22,用户只能看到如userA目录下拥有访问控制、读写权限
3) .查看seLinux是否关闭
命令:
/usr/sbin/sestatus
关闭的状态:
SELinux status: disabled
开启的状态:
SELinux status: enforcing
如果未关闭,修改selinux配置文件,命令:
vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled