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