es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema: nginx: [emerg] mkdir() “/var/cache/nginx/client_temp” fallido (13: Permiso denegado)

Estoy tratando de ejecutar Nginx en Openshift pero estoy enfrentando problemas de permisos de directorio. Debido a este error, el contenedor no se está creando.
Los siguientes permisos están establecidos para los archivos creados manualmente.

drwxr-xr-x. 3 root root 79 Dec 22 02:50 /etc/nginx
drwxr-xr-x. 2 root root 26 Dec 22 02:50 /etc/nginx/conf.d
-rw-r--r--. 1 root root 5231 Dec 22 02:48 /etc/nginx/mime.types
drwxrwxr-x. 3 root root 25 Dec 22 01:23 /var/cache/nginx
drwxrwxr-x. 2 root root 6 Dec 22 01:10 /var/log/nginx
drwxrwxr-x. 47 root root 1340 Dec 21 06:51 /var/run
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema aquí parece estar relacionado con los permisos de directorio establecidos como root en lugar del usuario nginx adecuado. Para ejecutar Nginx en Openshift, debemos asegurarnos de que los permisos adecuados estén establecidos para el usuario nginx.

    Podemos comenzar verificando los IDs de usuario y grupo que se utilizan en el contenedor nginx, ejecutando el siguiente comando:

    oc run nginx --image=nginx --restart=Never --dry-run -o yaml -- /bin/sh -c 'id nginx'
    

    Esto mostrará los IDs de usuario y grupo que se utilizan en el contenedor nginx, algo como:

    - name: nginx
      image: nginx
      command:
      - /bin/sh
      - -c
      - id nginx
    
    uid=101(nginx) gid=101(nginx) groups=101(nginx)
    

    A partir de esta salida, podemos ver que el ID de usuario y grupo utilizado por el contenedor nginx es 101.

    Ahora, necesitamos actualizar los permisos del directorio para permitir que el usuario nginx tenga acceso a ellos. Podemos hacer esto ejecutando el siguiente comando para cada directorio:

    oc project <project_name> # Establecer el proyecto correcto para modificar
    oc run nginx --image=nginx --restart=Never --dry-run -- /bin/sh -c 'chown -R 101:101 /etc/nginx'
    oc run nginx --image=nginx --restart=Never --dry-run -- /bin/sh -c 'chown -R 101:101 /etc/nginx/conf.d'
    oc run nginx --image=nginx --restart=Never --dry-run -- /bin/sh -c 'chown -R 101:101 /var/cache/nginx'
    oc run nginx --image=nginx --restart=Never --dry-run -- /bin/sh -c 'chown -R 101:101 /var/log/nginx'
    oc run nginx --image=nginx --restart=Never --dry-run -- /bin/sh -c 'chown -R 101:101 /var/run'
    

    Esto actualizará los permisos de los directorios para que sean accesibles por el usuario nginx. Una vez establecidos los permisos, podemos intentar ejecutar el contenedor nuevamente y debería crearlo sin ningún problema.

Comments are closed.