创建sftp用户组
groupadd sftp
mysftp加入用户组
-s 禁止用户ssh登陆
-G 加入sftp 用户组
useradd -G sftp -s /sbin/nologin mysftp
设置用户密码
passwd mysftp
修改配置文件
vim /etc/ssh/sshd_config
说明
Match Group sftp 匹配sftp用户组中的用户
ChrootDirectory %h 只能访问默认的用户目录(自己的目录),例如 /home/mysftp
##下面这行注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
##文件后面加 尾部 最后 DD
Subsystem sftp internal-sftp
Match Group sftp
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
重启ssh
systemctl restart sshd.service
设置权限
chown root:sftp /home/mysftp
chgrp -R sftp /home/mysftp
chmod -R 755 /home/mysftp
#设置用户可以上传的目录,改目录下允许用户上传删除修改文件及文件夹
mkdir /home/mysftp/upload
chown -R mysftp:sftp /home/mysftp/upload
chmod -R 755 /home/mysftp/upload
新增用户
useradd -G sftp -s /sbin/nologin test
passwd test
chown root:sftp /home/test
chgrp -R sftp /home/test
chmod -R 755 /home/test
#设置用户可以上传的目录,改目录下允许用户上传删除修改文件及文件夹
mkdir /home/test/upload
chown -R test:sftp /home/test/upload
chmod -R 755 /home/test/upload
shell脚本
vi make_sftp.sh
#!/bin/sh
usage(){
echo "参数错误!"
echo "eg: $0 test1 123456abcd"
echo ""
}
if [ $# -ne 2 ]; then
usage
exit 1
else
USERNAME="$1"
PASSWORD="$2"
fi
egrep "^${USERNAME}:" /etc/passwd >& /dev/null
if [ $? -eq 0 ];then
echo "$USERNAME 已经存在"
exit 1
else
useradd -G sftp -s /sbin/nologin ${USERNAME}
echo ${USERNAME}:${PASSWORD}|chpasswd
chown root:sftp /home/${USERNAME}
chgrp -R sftp /home/${USERNAME}
chmod -R 755 /home/${USERNAME}
mkdir /home/${USERNAME}/upload
chown -R ${USERNAME}:sftp /home/${USERNAME}/upload
chmod -R 755 /home/${USERNAME}/upload
echo "ok"
fi
本作品采用《CC 协议》,转载必须注明作者和本文链接