whoami7 - Manager
:
/
home
/
roberto
/
Upload File:
files >> //home/roberto/nuevo-paquete-hosting.sh
#!/bin/bash # Declaración de variables nombre_paquete=$1 mysql_root_pass="nRtjfGVr0DYm" # Compruebo si se ha recibido el nombre del paquete como parámetro if [ -z "$nombre_paquete" ]; then echo "Se requiere el nombre del paquete como parámetro" exit 1 fi # Compruebo si existe el paquete como usuario en el sistema if [ -d "/home/$nombre_paquete" ]; then echo "El paquete ya existe como usuario en el sistema" exit 1 fi # Genero una contraseña aleatoria para el paquete sin caracteres especiales con 12 caracteres de longitud password=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 12 | head -n 1) # Creo el directorio web del nuevo paquete mkdir -p /data/vhosts/$nombre_paquete/{logs,www} touch /data/vhosts/$nombre_paquete/www/index.html # Creo el usuario del nuevo paquete y le asigno la contraseña generada useradd -g www-data -d /data/vhosts/$nombre_paquete -s /bin/bash $nombre_paquete echo $nombre_paquete:$password | chpasswd # Otorgo permisos al usuario del nuevo paquete sobre su directorio web chown -R $nombre_paquete:www-data /data/vhosts/$nombre_paquete # Creo el archivo de configuración del nuevo paquete conforme a la plantilla existente touch /etc/apache2/sites-available/$nombre_paquete.conf sed 's/%{NOMBRE_PAQUETE}/'$nombre_paquete'/g' /etc/apache2/sites-available/plantilla.conf > /etc/apache2/sites-available/$nombre_paquete.conf # Habilito el nuevo paquete a2ensite $nombre_paquete.conf # Reinicio el servicio de Apache systemctl restart apache2 # Creo una base de datos mysql con el nombre del paquete y la contraseña generada mysql -u root -p$mysql_root_pass -e "CREATE DATABASE $nombre_paquete;" mysql -u root -p$mysql_root_pass -e "CREATE USER '$nombre_paquete'@'%' IDENTIFIED BY '$password';" mysql -u root -p$mysql_root_pass -e "GRANT ALL PRIVILEGES ON $nombre_paquete.* TO '$nombre_paquete'@'%';" mysql -u root -p$mysql_root_pass -e "FLUSH PRIVILEGES;" # Añado el nuevo paquete a la lista de usuarios autorizados de vsftpd echo $nombre_paquete >> /etc/vsftpd.user_list # Creo el nuevo certificado SSL para el paquete en apache2 certbot --apache -d $nombre_paquete.ncdesarrollos.com --non-interactive # Muestro la información de acceso al paquete echo "Paquete creado correctamente" echo "Usuario: $nombre_paquete" echo "Contraseña: $password" echo "URL: https://$nombre_paquete.ncdesarrollos.com"
Copyright ©2021 || Defacer Indonesia