Files
SnipitRepo/Linux/Scripts/sftpSpliting.sh

43 lines
1.2 KiB
Bash

###
#Declarring vars for testing
domain=Domain.exp
###
#Pre-confiuring Env
webname=$(sed -e 's/\.[a-z]*$//' <<< $domain)
webname=$(sed 's/\./-/g' <<< $webname)
apt install bindfs -y
#creating SFTP-user
groupadd $webname
useradd $webname -g $webname
mkdir -p /home/$webname/.ssh
echo "ExampleKey" >> /home/$webname/.ssh/authorized_keys
chown -R $webname:$webname /home/$webname
#creating folder and setting mount
mkdir -p /web/$webname/html
chmod 755 /web
chmod 755 /web/$webname
chown $webname:$webname /web/$webname/html
mkdir -p /var/www/$domain
chown www-data:www-data /var/www/$domain
echo "bindfs#/var/www/$domain /web/$webname/html fuse force-user=${webname},force-group=${webname},create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0" >> /etc/fstab
#Configuring sshd for SFTP only user
sed -i 's/Subsystem\s*sftp\s*\/usr\/lib\/openssh\/sftp-server/Subsystem sftp internal-sftp/g' /etc/ssh/sshd_config
cat <<EOF >> /etc/ssh/sshd_config
#Begin of $webname
Match User $webname
ChrootDirectory /web/$webname
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
#End of $webname
EOF
service sshd restart
mount -a