403Webshell
Server IP : 146.190.157.162  /  Your IP : 216.73.217.6
Web Server : Apache
System : Linux ubuntu-s-2vcpu-4gb-amd-sfo3-01-KIT-DIGITAL 6.5.0-44-generic #44-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:10:09 UTC 2024 x86_64
User : businessweek ( 639)
PHP Version : 8.2.10-2ubuntu2.2
Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_signal,pcntl_signal_dispatch,pcntl_getpriority,pcntl_setpriority,dl,putenv,parse_ini_file,show_source
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/wordpress-manager-v2/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/wordpress-manager-v2/scripts/user-new.sh
#!/bin/bash

# Verificar que se haya proporcionado un argumento (nombre del usuario/carpeta)
if [[ -z "$1" ]]; then
	echo "Uso: $0 <nombre_de_usuario>"
	exit 1
fi

# Nombre del usuario y carpeta
nombre="$1"
dir="/var/www/html/$nombre"
conf_file="/etc/apache2/sites-available/$nombre.conf"
ssl_conf_file="/etc/apache2/sites-available/$nombre-le-ssl.conf"

# Verificar si la carpeta existe
if [[ ! -d "$dir" ]]; then
	echo "La carpeta '$dir' no existe."
	exit 1
fi

# Verificar si el usuario ya existe
if id "$nombre" &>/dev/null; then
	echo "El usuario '$nombre' ya existe."

	if [[ ! -f "$dir/.bashrc" ]]; then
		echo "Copiando archivos de /etc/skel a $dir"
		sudo cp -r /etc/skel/. "$dir"
		sudo chown -R "$nombre:$nombre" "$dir"
	fi
else
	echo "Creando usuario y grupo: $nombre"
	sudo useradd -r -d "$dir" -s /usr/sbin/nologin "$nombre"

	echo "Copiando archivos de /etc/skel a $dir"
	sudo cp -r /etc/skel/. "$dir"
	sudo chown -R "$nombre:$nombre" "$dir"
fi

echo "Llamando a permissionsDisable.sh para el usuario $nombre"
/bin/bash /var/www/html/wordpress-manager-v2/scripts/permissionsDisable.sh "$nombre"

# Crear (o actualizar) el pool de PHP-FPM para este sitio
echo "Creando pool de PHP-FPM para $nombre"
pool_file="/etc/php/8.2/fpm/pool.d/$nombre.conf"
sudo tee "$pool_file" > /dev/null << EOF
[$nombre]
user = $nombre
group = $nombre
listen = /run/php/php8.2-fpm-$nombre.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = ondemand
pm.max_children = 3
pm.process_idle_timeout = 30s
pm.max_requests = 500
php_admin_value[open_basedir] = $dir:/tmp
EOF

echo "Recargando PHP-FPM..."
sudo systemctl reload php8.2-fpm

# Función para agregar configuraciones a un archivo de Apache
agregar_configuraciones() {
	local archivo="$1"
	if [[ -f "$archivo" ]]; then
		echo "Verificando configuraciones en $archivo"

		error_log_line="ErrorLog /var/log/apache2/$nombre-error.log"
		custom_log_line="CustomLog /var/log/apache2/$nombre-access.log combined"

		# Reemplazar o agregar líneas de logs
		if grep -q "ErrorLog" "$archivo"; then
			echo "Reemplazando línea de ErrorLog"
			sudo sed -i "s|ErrorLog .*|$error_log_line|" "$archivo"
		else
			echo "Agregando línea: $error_log_line"
			sudo sed -i "/<\/VirtualHost>/i \\\t$error_log_line" "$archivo"
		fi

		if grep -q "CustomLog" "$archivo"; then
			echo "Reemplazando línea de CustomLog"
			sudo sed -i "s|CustomLog .*|$custom_log_line|" "$archivo"
		else
			echo "Agregando línea: $custom_log_line"
			sudo sed -i "/<\/VirtualHost>/i \\\t$custom_log_line" "$archivo"
		fi

		# Verificar si ServerName contiene devuocloud.com y modificar VirtualHost
		if grep -q "ServerName.*devuocloud.com" "$archivo"; then
			echo "Modificando <VirtualHost *:80> a <VirtualHost *:443>"
			# sudo sed -i "s|<VirtualHost \*:80>|<VirtualHost *:443>|" "$archivo"

			if ! grep -q "SSLCertificateFile" "$archivo"; then
				echo "Agregando líneas de SSL"
				sudo sed -i "/<\/Directory>/a \\\n    SSLCertificateFile    /etc/apache2/certs/devuocloud.com.crt\n    SSLCertificateKeyFile /etc/apache2/certs/devuocloud.com.key" "$archivo"
			fi
		fi
	else
		echo "El archivo $archivo no existe. Omitiendo."
	fi
}

# Aplicar configuraciones al archivo de HTTP (si existe)
agregar_configuraciones "$conf_file"

# Aplicar configuraciones al archivo de HTTPS (si existe)
agregar_configuraciones "$ssl_conf_file"

echo "Proceso completado para el usuario '$nombre' y la carpeta '$dir'."

Youez - 2016 - github.com/yon3zu
LinuXploit