Linux sftp 服务器配置

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章