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