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.635 ]
É 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>
Renomeador Automático de Arquivos de Mídia
Script de instalação do Squid 3 no Slackware
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux









