software mac descargar ubuntu nginx debian vagrant puppet

ubuntu - mac - vagrant software



nginx en Ubuntu: Permiso denegado (8)

Soy nuevo en la administración de sistemas. Después de instalar nginx vía puppet en Ubuntu obtengo el siguiente resultado:

[alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) [warn] 1898#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1 [emerg] 1898#0: open() "/var/log/nginx/access.log" failed (13: Permission denied)

¿Cómo me deshago de todos estos mensajes?

No quiero usar la línea de comando directamente (chown / chmod) y repetirla cada vez que creo un nuevo servidor. Por lo tanto, estoy pensando en lo que debe agregarse al manifiesto de títeres.

¿Cuál es la mejor práctica de administración de sistemas en este caso: para cambiar propietario / permisos para / var / log / nginx o para almacenar registros en una ubicación diferente? Si chown / chmod es el camino a seguir, ¿qué permisos específicos garantizarían el más alto nivel de seguridad?

Intenté esto, pero no ayudó:

file { ''/var/log/nginx'': ensure => directory, mode => ''0755'', owner => ''www-data'', group => ''www-data'', recurse => true }

Editado:

vagrant@precise64:~$ ps aux | grep [n]ginx root 1001 0.0 0.1 62908 1388 ? Ss 08:47 0:00 nginx: master process /usr/sbin/nginx www-data 1002 0.0 0.1 63260 1696 ? S 08:47 0:00 nginx: worker process www-data 1003 0.0 0.1 63260 1696 ? S 08:47 0:00 nginx: worker process www-data 1004 0.0 0.1 63260 1696 ? S 08:47 0:00 nginx: worker process www-data 1005 0.0 0.1 63260 1696 ? S 08:47 0:00 nginx: worker process


Acabo de parchar la ruta de reemplazo binaria de nginx /var/log/nginx/error.log y otra con la ruta local.

$ perl -pi / -e ''s@/var/log/nginx/@_var_log_nginx/@g;'' / -e ''s@/var/lib/nginx/@_var_lib_nginx/@g;'' / -e ''s@/var/run/nginx.pid@_var_run/nginx.pid@g;'' / -e ''s@/run/nginx.pid@_run/nginx.pid@g;'' / < /usr/sbin/nginx > nginx $ chmod +x nginx $ mkdir _var_log_nginx _var_lib_nginx _var_run _run $ ./nginx -p . -c nginx.conf

Funciona para las pruebas.


Asegúrese de ejecutar la prueba como superusuario.

sudo nginx -t

O la prueba no tendrá todos los permisos necesarios para completar la prueba correctamente.


El permiso para ver archivos de registro se otorga a los usuarios que están en el grupo adm.

Para agregar un usuario a este grupo en el problema de línea de comando:

sudo usermod -aG adm <USER>


Me enfrenté a un problema similar al reiniciar Nginx y descubrí que era una causa de SeLinux . Asegúrese de intentarlo después de deshabilitar SeLinux o configurarlo temporalmente en modo Permissive usando el siguiente comando:

setenforce 0

Espero que ayude :)


Nginx necesita ejecutarse mediante el comando ''sudo /etc/init.d/nginx start''


Para mí, acabo de cambiar el selinux de forzar a permisivo y luego pude iniciar nginx sin ningún error.


Si asumo que tu segundo código es la configuración de títere, entonces tengo una explicación lógica, si el error y los archivos de registro fueron creados antes, puedes intentar esto

sudo chown -R www-data:www-data /var/log/nginx; sudo chmod -R 755 /var/log/nginx;


solo porque no tiene el derecho de acceder al archivo, use

chmod -R 755 /var/log/nginx;

o puede cambiar a sudo entonces