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.568 ]
É 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 monitoramento de processos em execução no sistema
Uso de variáveis com a linguagem Ruby
Instalação do Mplayer e seus Codecs+suporte a GUI.
Nenhum comentário foi encontrado.
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
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
É normal não gostar de KDE? (9)
Linux é a solução para o fim do Windows10? (2)
Problemas com Driver NVIDIA (4)









