Linux sftp 伺服器配置
阿新 • • 發佈:2019-01-08
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