一、SFTP 服务部署
1、修改SSH文件 /etc/ssh/sshd.conf
先注销掉这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
在最底下添加如下几行
Subsystem sftp internal-sftp -l INFO -f local5
Match Group sftpuser
ChrootDirectory /opt/sftpdata/%u
ForceCommand internal-sftp -l INFO -f local5
AllowTcpForwarding no
X11Forwarding no
2、创建SFTP用户组sftpuser
groupadd sftpuser
3、重启sshd服务
systemctl restart sshd
4、建sftp用户zxjr
useradd -g sftpuser -M -s /sbin/nologin zxjr
5、设置用户密码
echo “xxxxx” |passwd --stdin zxjr
6、创建家目录/opt/sftpdata/zxjr
注:用户无法在家目录直接操作,需要在家目录下创建一个文件夹用于存放文件
mkdir -p /opt/sftpdata/zxjr/home
7、修改用户家目录
usermod -d /opt/sftpdata/zxjr zxjr
8、修改文件夹属主和属组
chown zxjr:sftpuser /opt/sftpdata/zxjr/home
9、目录权限要求
家目录属主、属组、及用户权限,不能有错,错了,就登录报错。
/opt root:root 755
/opt/sftpdata root:root 755
/opt/sftpdata/zxjr root:sftpuser 755
/opt/sftpdata/zxjr/home zxjr:sftpuse 755
10、测试
[root@ecs-e388-0001 home]# sftp zxjr@192.168.0.246
zxjr@192.168.0.246's password:
Connected to 192.168.0.246.
sftp> cd home/
sftp> put /tmp/test.txt
Uploading /tmp/test.txt to /home/test.txt
/tmp/test.txt 100% 10 61.1KB/s 00:00
sftp>
二、后续用户维护
1、创建用户脚本脚本
add_sftp_user.sh
#!/bin/bash
user_name=$1
user_passwd=$2
if [ ! $user_name ];then
echo "请带上用户名参数和密码参数"
exit 1
fi
useradd -g sftpuser -M -s /sbin/nologin $user_name
echo "$user_passwd" |passwd --stdin $user_name
mkdir -p /opt/sftpdata/$user_name/home
usermod -d /opt/sftpdata/$user_name $user_name
chown $user_name.sftpuser /opt/sftpdata/$user_name/home
chown root.sftpuser /opt/sftpdata/$user_name
echo 'aaaaaaaaaaaa' > /tmp/test.txt
网友评论