前提:服务器已经安装sftp服务,且有sftp用户正常使用,仅限新增sftp用户情况
1.在root用户登录下,新增用户,设置用户组(此处sftp用户组为sftp),设置不允许登录shell,设置家目录
useradd -m 用户名 -g sftp用户组 -s /sbin/nologin -d 该用户家目录
eg:
useradd -m sfuser -g sftp -s /sbin/nologin -d /data/sftp/sfuser
注意:经过多台服务器经验来看,此处的/sbin/nologin并不是唯一的值,还可以是/bin/bash,具体可以看/etc/passwd文件里面其他sftp用户的权限,设置成一致即可,另外如果登录报错提示Received message too long 1416128883,那就是需要设置成 /bin/bash权限,可以使用usermod -s来更新,但是不建议这么做,可能修改后的也是没有权限登录sftp会提示Permission denied, please try again. 所以建议直接删除用户后从头来: userdel -r 用户名
2.设置该账号的密码:
passwd sfuser
然后数据密码
再次输入密码
3.确定文件夹权限:
已知用户的家目录为 /data/sftp/sfuser 那么在该目录下新建一个文件夹data用作存储数据:
文件夹路径为:/data/sftp/sfuser/data
数据文件夹权限设置为 sfuser:sftp
cd /data/sftp/
chown -R sfuser:sftp sfuser/
sfuser根目录需要设置权限为 root:sftp 755
则需要设置/data/sftp/sfuser的权限为root:sftp , 755
cd /data/sftp
chmod -R 755 /data/sftp/sfuser
chown root:sftp sfuser (注意此处不需要-R递归处理)
4.登录sftp验证上传情况
网络畅通情况下,登录方法:sftp 用户名@sftp服务器IP
eg: sftp sfuser@192.168.0.3
输入密码后进入
# 进入刚才创建的数据目录
cd data
# 上传一个本地文件到data文件夹下
put 本地文件 ./
eg: put /etc/my.ini ./
# 查看文件列表
ls
# 退出
exit