Linux 7 sftp 服务器配置
sftp配置
1、创建用户组
# groupadd sftpgroup
2、创建用户
# useradd -g sftpgroup -s /sbin/nologin -d /ftpdata/sftp/user user
3、设置密码
# passwd user
4、创建用户ftp文件目录
# mkdir -p /ftpdata/sftp/user
5、修改ssh 的配置文件
# vim /etc/ssh/sshd_config 注释掉Subsystem sftp /usr/libexec/openssh/sftp-server 这句话 并且在文件末尾添加如下语句 Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /ftpdata/sftp/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
6、重启ssh 服务
# systemctl restart sshd
这时候sftp 能连接(不能上传和写入),需在根目录/ftpdata/sftp/user配置文件夹的权限,user这个目录下创建个文件夹作为根目录。
7、创建ftp根目录
# mkdir /ftpdata/sftp/user/file # chown -R user.sftpgroup /ftpdata/sftp/user/file # chmod -R 755 /ftpdata/sftp/user/file
完成。
附带我写的创建用户的脚本如下:
#!/bin/sh ############################# ## Writer By Tian # ## Ver 1.0 at 20190108 # ## sh sftp.sh name password # ############################# data=/ftpdata/sftp name=$1 pass=$2 echo "you are setting username : ${name}" echo "you are setting password : $pass for ${name}" mkdir -p $data/$name useradd -g sftpgroup -d /ftpdata/sftp/$name/file -s /sbin/nologin $name if [ $? -eq 0 ];then echo "user ${name} is created successfully!!!" else echo "user ${name} is created failly!!!" exit 1 fi echo $pass | passwd $name --stdin &>/dev/null if [ $? -eq 0 ];then echo "${name}'s password is set successfully" else echo "${name}'s password is set failly!!!" fi