Automatizar a criação de domínios, sites e usuários de FTP
Publicado por Fernando Leonid Careaga Camelo (última atualização em 11/04/2020)
[ Hits: 2.572 ]
É um script em bash que tem como objetivo criar domínios, site web e FTP, além dos usuários para utilização do FTP. Os domínios são passados como argumento por meio de um arquivo texto.
O script é dividido em 4 arquivos:
- criarDominio.sh
- criarSite.sh
- criarFTP.sh
- criarDSF.sh
E depende de 3 arquivos que são utilizados como base para a configuração dos respectivos serviços:
- db.modelo
- conf.modelo
- html.modelo
Esse script foi criado para fins didáticos, ou seja, com objetivo de demostrar a importância dos scripts no dia a dia dos profissionais de redes. Por esse motivo estão divididos em partes, onde dividimos os problema em pequenos soluções que juntas resolvem o necessário.
A ideia de compartilhar e ajudar quem está começando e ser ajudado com sugestões de melhorias e funcionalidades mais adequadas.
Arquivos disponíveis também no github:
https://github.com/fernandoleonid/servicosredes/
# Arquivo criarDominio.sh
#!/bin/bash
nomeDominio=$1
echo "
zone \"$nomeDominio\" {
type master;
file \"/etc/bind/db.$nomeDominio\";
};
" >> /etc/bind/named.conf.default-zones
cp db.modelo /etc/bind/db.$nomeDominio
sed -i s/localhost/$nomeDominio/g /etc/bind/db.$nomeDominio
systemctl restart bind9
##################################################
# Arquivo criarSite.sh
#!/bin/bash
nomeDominio=$1
cp conf.modelo "/etc/apache2/sites-available/$nomeDominio.conf"
sed -i s/localhost/$nomeDominio/g "/etc/apache2/sites-available/$nomeDominio.conf"
mkdir "/var/www/$nomeDominio"
cp html.modelo "/var/www/$nomeDominio/index.html"
sed -i s/localhost/$nomeDominio/g "/var/www/$nomeDominio/index.html"
a2ensite $nomeDominio.conf
systemctl reload apache2
##################################################
# arquivo criarFTP.sh
#!/bin/bash
dominio=$1
usuario=$(echo $1 | cut -d. -f1)
useradd $usuario -p $(openssl passwd '123') -d /var/www/$dominio
chown $usuario.$usuario /var/www/$dominio
##################################################
# arquivo criarDSF.sh
#!/bin/bash
for dominio in $(cat listadominios.txt)
do
./criarDominio.sh $dominio
./criarSite.sh $dominio
./criarFTP.sh $dominio
done
##################################################
# Arquivos modelo para os respectivos serviços
##################################################
# db.modelo
$TTL 86400
@ IN SOA ns1.localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns1.localhost.
ns1 IN A 10.0.100.2
www IN A 10.0.100.2
ftp IN A 10.0.100.2
##################################################
# conf.modelo
<VirtualHost *:80>
ServerName www.localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/localhost
</VirtualHost>
##################################################
# html.modelo
<html>
<head>
<title> localhost </title>
<meta charset="utf-8">
</head>
<body bgcolor=localhost>
<h1>
Site em construção - localhost
</h1>
</body>
</html>
Script para limpeza de arquivos temporários em Sabayon Linux
Lista de Selecao de arquivos no Dialog
Gerador de Pacotes de Instalação
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Mint Xfce não mantém a conexão no wi-fi (2)
Problemas com Driver NVIDIA (5)
Warcraft II Remastered no Linux? (8)









