CentOS7 sftp 配置與新增使用者

Vckin發表於2019-01-21

建立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 協議》,轉載必須註明作者和本文連結

相關文章