Script para desactivar servicio mail en plesk

Este script en bash lo que hace es que comprueba todos los dominios en plesk que tienen el servicio mail activo y posteriormente lo desactiva

#!/bin/bash
SiteList=`egrep 'Server(Name)' /var/www/vhosts/*/conf/httpd.include|
awk '{print $3}'|grep -v www.*|
grep -v '^.*\..*\..*$'|sed 's/:80//'|
sed 's/:443//'|sort -u`;
for Site in $SiteList
do
Result=`/usr/local/psa/bin/domain -i $Site | grep 'Mail service' | awk '{print $3}'`;
if [ $Result == On ]; then
Command=`/usr/local/psa/bin/domain -u $Site -mail_service false`
echo "Turning Off Mail Service: $Site";
fi
done

Desactivar servicio Mail por dominio en Plesk

Es fácil, si teneis que desactivar el servicio Mail en algun dominio por cualquier causa y por el panel de control web de Plesk es imposible, aqui teneis el comando de plesk para desactivar el servicio de mail en el dominio que querrais en Plesk

# /etc/init.d/psa stopall
# /etc/init.d/mysql start
# /usr/local/psa/bin/domain -u midominio.com -mail_service false

Solución al error Premature end of script headers al ejecutar CGI en Plesk 9

Este error me ha comido mucho la cabeza¡¡¡¡¡¡¡¡¡¡¡¡¡  la solucíon que yo le he dado al error Premature end of script headers al ejecutar un script CGI en Plesk 9es la siguiente.

Primeramente he restaurado los permisos de usuario del grupo en la carpeta donde se va a ejecutar el cgi, normalmente /var/www/vhosts/midominio.com/cgi-bin/ en Plesk.

chown usuariodeldominio:psaserv cgi-bin/
chown usuariodeldominio:psaserv cgi-bin/*
chown usuariodeldominio:psaserv cgi-bin/test/
chown usuariodeldominio:psaserv cgi-bin/test/test.cgi

nota:  a la carpeta test y al test.cgi le he dado permisos para corroborar que efectivamente rulaba el cgi correctamente y que no era del script que yo intentaba hacer andar.

Por segundo paso le he dado permisos 755 a los scripts y a la carpeta cgi-bin debido que el script cgi que queria hacer andar necesitaba escribir archivos de log dentro de la carpeta.

chmod 755 cgi-bin/*
chmod 755 cgi-bin/test
chmod 755 cgi-bin/test/test.cgi

Y por último he comprobado que la configuración de apache del virtualhost, en plesk normalmente esta en /var/www/vhosts/dominio.com/conf/httpd.include, fijandome que en  la parte ( SuexecUserGroup         usuariodeldominio psaserv )este usuario y grupo sea el correcto y permita la ejecución de scripts cgi en el virtualhost de Plesk, y por su puesto tenga activado el cgi en el virtualhost con la opcion Options -Includes +ExecCGI.

Espero que os haya servidor de ayuda.

Nota el servidor en el que ha salido este error esta sobre Plesk 9.0.1 y Centos 5.2 64bits

Actualizar y corregir permisos (UIDs) en Plesk

permisos-de-archivos

permisos-de-archivos

Tal vez os haya pasado, que tras copiar contenidos desde otro servidor Plesk, sobretodo cuando se hace con el comando rsync, se desajustan los nombres de usuario y grupo que tenian originalmente. Aqui dejamos un script en bash totalmente operativo que corrige todos estos permisos. Recordar esto es solo script en bash  para Plesk, funciona en cualquiera de sus versiones de Plesk en cualquier distribucion Linux, no tiene ninguna funcionalidad en otros entornos

#!/bin/bash
# Corrige los permisos de los archivos y directorios de los dominios
cat /etc/passwd |egrep vhos > /tmp/$$
wc=`wc -l /tmp/$$ |awk ‘{ print $1 }’ `
for i in `seq 1 $wc`
do
linea=`head -$i /tmp/$$ |tail -1`
user=`echo $linea |awk -F: ‘{ print $1}’`
home=`echo $linea |awk -F: ‘{ print $6}’`
echo “$user – $home”
#corrigiendo el home
chown root.root $home
chmod 755 $home
#corrigiendo el httpdocs y demas principales
for dir in httpdocs httpsdocs cgi-bin anon_ftp
do
if [ -d $home/$dir ];then
#el directorio
chown $user.psaserv $home/$dir
chmod 750 $home/$dir
#el contenido
chown $user.psacln $home/$dir/* -R
chmod 777 $home/$dir/* -R
fi
done
for dir in statistics subdomains web_users
do
if [ -d $home/$dir ];then
chown root.psaserv $home/$dir
chmod 755 $home/$dir
if [ -d $home/$dir/httpsdocs ];then
chown $user.psaserv $home/$dir/httpsdocs
chmod 750 $home/$dir/httpsdocs
chown $user.psacln $home/$dir/httpsdocs -R
chmod 777 $home/$dir/httpsdocs -R
fi
fi
done
done