Drupal: Error 403 Forbidden cuando se instala un módulo

Al querer instalar o actualizar un módulo en Drupal 8 despues de ingresar la información del FTP aparece el error:

403 Forbidden
nginx/1.10.0 (Ubuntu)

El problema es que la URL no existe, si nos fijamos en la barra de direcciones veremos algo así:
http://sitio.com/core/authorize.php/core/authorize.php?batch=1&id=17&op=start

Si observan core/authorize.php se repite 2 veces, la solución es crear un Rewrite en la configuración de nuestro servidor web, en este caso estoy utilizando Nginx.

Editamos el archivo /etc/nginx/sites-enabled/default (o el de su sitio) y agregamos la siguiente línea

rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1;

En mi caso quedo así (es una parte de la configuración):

server {
server_name example.com;
root /var/www/drupal;

client_max_body_size 20M;

location = /favicon.ico {
log_not_found off;
access_log off;
}

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

# Very rarely should these ever be accessed outside of your lan
location ~* \.(txt|log)$ {
allow 192.168.0.0/16;
deny all;
}

location ~ \..*/.*\.php$ {
return 403;
}

rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1;

location ~ ^/sites/.*/private/ {
return 403;
}

# Allow “Well-Known URIs” as per RFC 5785
location ~* ^/.well-known/ {
allow all;
}

Reiniciamos el servidor web y listo:

/etc/init.d/nginx restart

Problema con VMware y Ubuntu 16.10 (GCC 6)

Despues de actualizar Ubuntu a la versión 16.10 Yakkety con el Kernel 4.4.0 y al iniciar VMware, me encuentro con un error de que no puede encontrar la librería GCC versión 5.3.1 ya que la actualización la cambio a GCC version 6.1.1 20160724 (Ubuntu 6.1.1-10ubuntu11)

vmware-gcc-problem

La solución es compilar los módulos de vmmon y vmnet con la última versión GCC y el nuevo Kernel.
Lo primero es descargar una versión del VMware Workstation Player 12.0 (esa es la que yo tengo actualmente) para descomprimir y compilar los módulos.

En esta página lo descargamos: https://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0

Después ejecutar los siguientes pasos (todo como Root)

chmod +x VMware-Player-12.1.1-3770994.x86_64.bin
./VMware-Player-12.1.1-3770994.x86_64.bin -x temp
tar xf ./temp/vmware-vmx/lib/modules/source/vmmon.tar
tar xf ./temp/vmware-vmx/lib/modules/source/vmnet.tar

Lo que hacemos con el -x temp, es descomprimir el .BIN, para despues, descomprimir los módulos vmmon y vmnet, lo siguiente es iniciar la compilación (asegurate de tener las librerias de compilación: sudo apt-get install build-essential linux-headers-generic )

cd vmmon-only
make
cd ..

cd vmnet-only
make
cd ..

Y por último copiamos lo compilado a la carpeta de módulos del Kernel actual

mkdir /lib/modules/`uname -r`/misc
cp vmmon.o /lib/modules/`uname -r`/misc/vmmon.ko
cp vmnet.o /lib/modules/`uname -r`/misc/vmnet.ko
depmod -a
/etc/init.d/vmware restart

vmware-restart

Y listo! ya debe de funcionar, ahora, si actualizamos el Kernel, debemos de seguir estos pasos, hasta que se tenga una solución automatizada.

Codeigniter: Only variable references should be returned by reference

Después de actualizar mi versión de PHP a la 5.6.4 mis paginas en Codeigniter me mostraban este error:

A PHP Error was encountered
Severity: Notice
Message: Only variable references should be returned by reference
Filename: core/Common.php
Line Number: 257

La solución esta en modificar la linea 257 que esta en el archivo system/core/Common.php en donde veremos algo asi:

return $_config[0] =& $config;

Y remplazar por este codigo:

$_config[0] =& $config;
return $_config[0];

Listo!! adiós a la noticia en PHP.

Linux: Reactivar Control+ALT+Retroceso para reiniciar servidor X en Linux

Por si no sabias, puedes reiniciar tu servidor X presionando las teclas “Ctrl+Alt+Retroceso”, de que sirve, pues cuando esta trabado todo todo, al reiniciar el servidor X puedes casi siempre volver a la normalidad y volver a iniciar sesión.

Ahora, si por alguna razón no funciona esta combinación de teclas (en las ultimas versiones de Ubuntu por ejemplo, no sirve), aquí esta la forma de volver a activar esta opción.

En la terminal escribir:

sudo dpkg-reconfigure keyboard-configuration

Te van a aparecer muchas opciones, puedes ignorar todas.., excepto cuando llegue a la parte que te dice:

Por omisión la combinación Control+Alt+Retroceso no hace nada. Si lo desea, puede utilizarse para terminar el servidor X.

¿Desea utilizar Control+Alt+Retroceso para terminar el servidor X?

Despúes, activar la opción de SI, y listo!…, a probar el comando (todo lo que tengas abierto se cerrara en automático)

En sublime text 3 no puedo escribir acentos

He instalado Sublime text en linux (ubuntu 14.10) y no me permite escribir palabras acentuadas, siempre agrega la apostrofe al inicio de la palabra y no arriba de ella: Como por ejemplo: Jos´e.

La solución es modificar la configuración “Key Bindings” del SublimeText., para eso entramos a:

Preferences > Key Bindings – Users

Y pegamos el siguiente texto en el archivo de configuración, guardar y listo!!!!.

[
// missing accented characters fix for ubuntu 14.10

// a, [á, å, ä]
{ “keys”: [“´”,”a”], “command”: “insert”, “args”: {“characters”: “á”}},
{ “keys”: [“°”,”a”], “command”: “insert”, “args”: {“characters”: “å”}},
{ “keys”: [“¨”,”a”], “command”: “insert”, “args”: {“characters”: “ä”}},

// A, [Á, Å, Ä]
{ “keys”: [“´”,”A”], “command”: “insert”, “args”: {“characters”: “Á”}},
{ “keys”: [“°”,”A”], “command”: “insert”, “args”: {“characters”: “Å”}},
{ “keys”: [“¨”,”A”], “command”: “insert”, “args”: {“characters”: “Ä”}},

// e, [é, ë]
{ “keys”: [“´”,”e”], “command”: “insert”, “args”: {“characters”: “é”}},
{ “keys”: [“¨”,”e”], “command”: “insert”, “args”: {“characters”: “ë”}},

// E, [É, Ë]
{ “keys”: [“´”,”E”], “command”: “insert”, “args”: {“characters”: “É”}},
{ “keys”: [“¨”,”E”], “command”: “insert”, “args”: {“characters”: “Ë”}},

// i, [í, ï]
{ “keys”: [“´”,”i”], “command”: “insert”, “args”: {“characters”: “í”}},
{ “keys”: [“¨”,”i”], “command”: “insert”, “args”: {“characters”: “ï”}},

// I, [Í, Ï]
{ “keys”: [“´”,”I”], “command”: “insert”, “args”: {“characters”: “Í”}},
{ “keys”: [“¨”,”I”], “command”: “insert”, “args”: {“characters”: “Ï”}},

// o, [ó, ö]
{ “keys”: [“´”,”o”], “command”: “insert”, “args”: {“characters”: “ó”}},
{ “keys”: [“¨”,”o”], “command”: “insert”, “args”: {“characters”: “ö”}},

// O, [Ó, Ö]
{ “keys”: [“´”,”O”], “command”: “insert”, “args”: {“characters”: “Ó”}},
{ “keys”: [“¨”,”O”], “command”: “insert”, “args”: {“characters”: “Ö”}},

// u, [ú, ů, ü]
{ “keys”: [“´”,”u”], “command”: “insert”, “args”: {“characters”: “ú”}},
{ “keys”: [“°”,”u”], “command”: “insert”, “args”: {“characters”: “ů”}},
{ “keys”: [“¨”,”u”], “command”: “insert”, “args”: {“characters”: “ü”}},

// U, [Ú, Ů, Ü]
{ “keys”: [“´”,”U”], “command”: “insert”, “args”: {“characters”: “Ú”}},
{ “keys”: [“°”,”U”], “command”: “insert”, “args”: {“characters”: “Ů”}},
{ “keys”: [“¨”,”U”], “command”: “insert”, “args”: {“characters”: “Ü”}},

// y, [ý, ÿ]
{ “keys”: [“´”,”y”], “command”: “insert”, “args”: {“characters”: “ý”}},
{ “keys”: [“¨”,”y”], “command”: “insert”, “args”: {“characters”: “ÿ”}},

// Y, [Ý, Ÿ]
{ “keys”: [“´”,”Y”], “command”: “insert”, “args”: {“characters”: “Ý”}},
{ “keys”: [“¨”,”Y”], “command”: “insert”, “args”: {“characters”: “Ÿ”}}
]

Lo que hace esta configuración es detectar el apostrofe + la letra y convertirla a la letra con acento.

rkhunter: Warnings y más warnings

Estoy escaneando en busca de troyanos y rootkit mi servidor Debian con la aplicación rkhunter, y en el log veo que tengo diferentes warnings en archivos del sistema como por ejemplo:

/usr/sbin/adduser [ Warning ]
/usr/bin/lwp-request [ Warning ]
/bin/which [ Warning ]

Y por ejemplo el adduser el warning indicaba que apuntaba a un archivo de perl , entonces para no ponerme paranoico investigue sobre lo sucedido y veo que falta agregar un parametro en el archivo de configuración de rkhunter: /etc/rkhunter.conf, como estoy utilizando debian (ubuntu) falta agregar esta línea:

PKGMGR=DPKG

Eso indica que las validaciones se harán con dpkg y entonces vualaa! ya no más warnings en estos archivos.

Sudo no funciona, error en el archivo sudoers

Al querer ingresar como root con el comando sudo me marca un error de que la sintaxis es incorrecta en el archivo sudoers, y probando con su root no deja entrar entonces, ¿como puedo tener acceso como root?

[email protected]:/home$ sudo su –
sudo: >>> /etc/sudoers: syntax error near line 22 < << sudo: parse error in /etc/sudoers near line 22 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin

[email protected]:/home$ su –
Password:
su: Authentication failure

1.- Tener acceso fisico y arrancar el GRUB y montar la partición como un solo usuario y despues poder modificar el archivo sudoers, en mi caso no tengo acceso fisico ni forma de ver el GRUB remotamente.

2.- Utilizar este truco, con este comando: pkexec visudo y poner la clave de root

[email protected]:~$ pkexec visudo
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/usr/sbin/visudo’ as the super user
Authenticating as: ubuntu-prueba,,, (usuario)
Password:

Y vualaaaa!, aparece el archivo de configuración, buscamos la línea 22 y vemos la error de sintaxis, lo arreglamos y listo 🙂

POSTFIX: Problema con private/policy

Viendo el log del servidor de correos postfix me aparecen algunas lineas con los siguiente warning:

warning: problem talking to server private/policy: Connection timed out
warning: problem talking to server private/policy: Connection refused
NOQUEUE: reject: RCPT from smtp1.dominio.com[10.10.10.10]: 451 4.3.5 Server configuration problem; from= to= proto=ESMTP helo=

Y pues el problema radica en algo referente al private/policy, lo extraño es que no se habia tocado nada en meses y de repente aparecieron estos mensajes, entonces investigando más al respecto el problema esta en que se pierde la conexión, se rechaza y la solución es aumentar más tiempo a las conexiones y que no suceda lo anterior,

Gracias a este post: http://www.engardelinux.org/modules/index/list_archives.cgi?list=postfix-users&page=0730.html&month=2011-01 me ayudo a darme idea de por donde encontrar la solución, y pues les comparto la modificación (tomado de http://www.postfix.org/SMTPD_POLICY_README.html):

/etc/postfix/master.cf:
policy unix – n n – 0 spawn
       user=nobody argv=/some/where/policy-server

/etc/postfix/main.cf:
smtpd_recipient_restrictions =
       …
       reject_unauth_destination
       check_policy_service unix:private/policy
       …
policy_time_limit = 3600

Ahora, puntos a considerar, en la parte del archivo master.cf se especifica como parametro el número “0” originalmente en casi todos los manuales encontraremos el valor por default “-“, con el cero solucionamos el problema del limite de conexiones en los procesos smtpd.

Y también se agrego en el main.cf la parte de time_limit y siempre recordar que reject_unauth_destination va antes de check_policy_service, sino seremos openrelay.

Saludos.

Mostrar el contenido de un archivo gzip o zip sin descomprimirlo previamente

Si desean ver el contenido de un archivo comprimido con gzip o zip sin necesidad de descomprimirlo primero y despues aplicar un cat, entonces podemos utilizar estos comandos:

Para hacer un cat

zcat archivo.log.gz

Y para un more

zmore archivo.log.gz

Y listo.., ya podemos luego implementar algun grep para buscar algun patrón.

zcat archivo.log.gz | grep “buscar”

Linux: Ver que proceso esta bloqueando algún archivo

Estos comandos nos puede ayudar para conocer cual proceso esta bloqueando nuestro archivo, para posteriormente matarlo con un kill -9 PROCESO

el primero es fuser -v ARCHIVO, un ejemplo tipico de bloqueo es cuando tenemos el error

debconf: DbDriver “config”: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable

#fuser -v /var/cache/debconf/config.dat

USER PID ACCESS COMMAND /var/cache/debconf/config.dat:
root 1846 F…. frontend

Lo que nos interesa es la parte del PID, o tambien tenemos este otro comando lsof ARCHIVO

#lsof /var/cache/debconf/config.dat

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
frontend 1846 root 4uW REG 8,3 48329 24036395 /var/cache/debconf/config.dat

De igual manera nos interesa el PID, en este caso 1846, y ahora si.., a eliminar el proceso latoso: kill -9 1846