Restablecer los permisos predeterminados en el directorio del virtualhost en Plesk

Síntomas

Algunos archivos y directorios del dominio han perdido sus permisos. Varios de ellos son propiedad del usuario “apache” o “root” de Apache.

Por ejemplo:

# ls -l /var/www/vhosts/blogofsysadmins.com/
total 48
drwx------ 5 apache     apache 4096 Mar 16 20:07 anon_ftp
drwx------ 2 root       psaserv 4096 Mar 16 20:07 bin
drwx------ 3 apache     apache 4096 Mar 16 20:07 cgi-bin
drwx------ 2 root       psaserv 4096 Aug  4 12:56 conf
drwx------ 2 root       psaserv 4096 Mar 16 20:07 error_docs
drwx------ 7 apache     apache 4096 Mar 16 20:07 httpdocs
drwx------ 7 apache     apache 4096 Mar 16 20:07 httpsdocs
drwx------ 2 root       psaserv 4096 Aug  4 12:56 pd
drwx------ 2 root       root    4096 Mar 16 20:07 private
dr-x------ 7 root       psaserv 4096 Mar 16 20:07 statistics
drwx------ 2 root       psaserv 4096 Mar 16 20:07 subdomains
drwx------ 2 root       psaserv 4096 Mar 16 20:07 web_users
~#

Cuando intento cargar archivos a través del Administrador de Archivos o de un cliente FTP, obtengo los errores «Permiso denegado» o «Acceso denegado«.

Resolución

Use la utilidad «vhostmng» para restablecer los permisos. El comando a ejecutar es el siguiente:

~# /usr/local/psa/admin/sbin/vhostmng --install-vhost --vhost-name=<domain name> --user-name=<username> --set-content-permissions

Donde <domain name> es el dominio donde deben restaurarse los permisos y <username> es el usuario FTP del dominio configurado en Parallels Plesk Panel en la página Dominios -> <domain name> -> Opciones de Alojamiento Web (versión 9.x) o Dominios -> <domain name> -> Configuración (versión 8.x).

El comando restaurará los permisos predeterminados en el directorio del virtualhost:

drwxr-x--- 5 ftp_user   psaserv 4096 Mar 16 20:07 anon_ftp
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 bin
drwxr-x--- 3 ftp_user   psaserv 4096 Mar 16 20:07 cgi-bin
drwxr-x--- 2 root       psaserv 4096 Aug  4 12:56 conf
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 error_docs
drwxr-x--- 7 ftp_user   psaserv 4096 Mar 16 20:07 httpdocs
drwxr-x--- 7 ftp_user   psaserv 4096 Mar 16 20:07 httpsdocs
drwxr-x--- 2 root       psaserv 4096 Aug  4 12:56 pd
drwx------ 2 ftp_user   root    4096 Mar 16 20:07 private
dr-xr-x--- 7 root       psaserv 4096 Mar 16 20:07 statistics
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 subdomains
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 web_users

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

Gestionar la cola de correo en Qmail con QmHandle

La cola de correo es algo que cualquier administrador de sistemas se acostumbra a lidiar con ello. Normalmente no dá problemas y se regula muy bién por si misma si está bién configurada y optimizada para las necesidades de cada servidor. Ahora, cuando se detecta un spammer o un cliente envía email con una de sus listas, la cola de mensajes empieza a subir y los envios de emails se pueden retrasar hasta que la cola se normalice.

El sintóma típico de que suba es alguien haciendo spam. Para localizar el spammer podemos seguir los pasos comentados en este otro post.

Y para gestionar la cola de correo y limpiarla de los emails “malos” a mi me gusta mucho qmHandle.

qmHandle es una herramienta (script) escrita en perl que sirve para manejar la cola de correo de Qmail.
La última versión puede ser descargada aquí, paso a describir las distintas opciones de las que dispone:

Utilización:

qmhandle <opción>

Opciones de Qmhandle:

-a : Enviar todos los mensajes pendientes de la cola
-l : Listar las colas de correo
-L : Listar cola de correo local
-R : Listar cola de correo remota
-s : Mostrar por pantalla estadísticas
-mN : Mostrar mensaje N
-dN : Borrar mensaje N
-Stext : Borrar todos los mensajes cuyo asunto contenga «text»
-D : Borrar todos los correos de la cola (remota y local)
-V : Sacar versión por pantalla
-c : Resultados con colores
-N : Listar solo números (identificadores) de mensaje

Primero listamos cuantos mensajes en la cola (sobre todo la remota) existen.
Si hay miles, hay un spammer seguro.

Primero listo los mensajes en remoto:

# ./qmHandle -R | less

y miro los que se repiten, es habitual que hayan muchos emails con el mismo asunto. SI ves que hay
centenas de mensajes repetidos y que además vienen devueltos, lo más sencillo y rápido es borrarlos

# ./qmHandle -S”texto-a-buscar-en-asunto-y-eliminar”

Si por ejemplo el subject es “Win lottery now”, lo colocas en S”texto” y te los borrará automaticamente.
Si buscasa la palabra “failure” en el subject, ya te cargas unos cuantos.

Cuidado porque Qmhandle para el servicio qmail y si tiene algún problema lo deja parado y no lo arranca.

Cambiar idioma de AWstats en Plesk

Para cambiar el idioma de AWstats basado en Plesk hay que modificar el fichero: /usr/local/psa/etc/awstats/awstats.tudominio.tld-http.conf (yo uso nano) evidentemente cambia tudominio.tld por el dominio que quieras modificar.
Debes modificar la linea donde pone lang=»auto» por lang=»es» (o el idioma que quieras), no es instantáneo debes esperar a que se actualicen las estadísticas. En teoría tb le puedes poner en multi-idioma incluyendo una bandera con el link al idioma pero yo no he conseguido que funcione, para esto ‘en teoria’ debes modificar ShowFlagLinks=»» por por ejemplo ShowFlagLinks=»es es_cat en» (Español, Catalán e Ingles).

NOTA: Si por casualidad conseguis que funcione la función multi-idioma dime como lo has conseguido.