Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

687
Visualizações
permiso docker.sock denegado

Cuando trato de ejecutar comandos simples de Docker como:

 $ docker ps -a

Recibo un mensaje de error:

Tengo permiso denegado... /var/run/docker.sock: connect: permiso denegado

Cuando compruebo los permisos con

 $ ls -al /var/run/

Veo esta línea:

 srw-rw---- root docker docker.sock

Entonces, sigo un consejo de muchos foros y agrego un usuario local al grupo docker:

 $ sudo usermod -aG docker $USER

Pero no ayuda. Sigo recibiendo el mismo mensaje de error. ¿Cómo puedo arreglarlo?

over 4 years ago · Santiago Trujillo
11 Respostas
Responde à pergunta

0

Como se mencionó anteriormente en el comentario, los cambios no se aplicarán hasta que vuelva a iniciar sesión. Si estuviera haciendo un SSH y abriendo una nueva terminal, habría funcionado en la nueva terminal

Pero como estaba usando la GUI y abriendo la nueva terminal, los cambios no se aplicaron. Esa es la razón por la que el error no desapareció.

Entonces, el siguiente comando hizo su trabajo, solo se perdió un reinicio de sesión

 sudo usermod -aG docker $USER
over 4 years ago · Santiago Trujillo Relatório

0

Para aquellos nuevos en el shell, el comando:

 $ sudo usermod -aG docker $USER

necesita tener $USER definido en su shell. Esto suele estar allí de forma predeterminada, pero es posible que deba establecer el valor en su ID de inicio de sesión en algunos shells.


Cambiar los grupos de un usuario no cambia los inicios de sesión, terminales y shells existentes que un usuario tiene abiertos. Para evitar realizar un inicio de sesión nuevamente, simplemente puede ejecutar:

 $ newgrp docker

para obtener acceso a ese grupo en su shell actual.


Una vez que haya hecho esto, el usuario tiene acceso a la raíz en el servidor, así que solo haga esto para los usuarios en los que se confía con acceso sudo sin restricciones.

over 4 years ago · Santiago Trujillo Relatório

0

Como mi usuario es un usuario de AD, tengo que agregar el usuario de AD al grupo local editando manualmente el archivo /etc/group. Desafortunadamente, los comandos adduser no parecen ser conscientes de nsswitch y no reconocen a un usuario que no está definido localmente al agregar a alguien a un grupo.

Luego reinicie o actualice /etc/group. Ahora, puede usar la ventana acoplable sin sudo.

Saludos.

over 4 years ago · Santiago Trujillo Relatório

0

  1. Asegúrese de que su variable $USER esté configurada

     $ echo $USER $ sudo usermod -aG docker $USER
  2. cerrar sesión

  3. Al iniciar sesión, reinicie el servicio docker

     $ sudo systemctl restart docker $ docker ps
over 4 years ago · Santiago Trujillo Relatório

0

Motivo: el mensaje de error significa que el usuario actual no puede acceder al motor acoplable, porque el usuario no tiene suficientes permisos para acceder al socket de UNIX para comunicarse con el motor.

Arreglo rapido:

  1. Ejecute el comando como root usando sudo.

     sudo docker ps
  2. Cambie los permisos de /var/run/docker.sock para el usuario actual.

     sudo chown $USER /var/run/docker.sock

Precaución : Ejecutar sudo chmod 777 /var/run/docker.sock resolverá su problema pero abrirá el socket de la ventana acoplable para todos, lo cual es una vulnerabilidad de seguridad como lo señaló @AaylaSecura. Por lo tanto, no debe usarse, excepto con fines de prueba en el sistema local.

Solución permanente:

Agregue el usuario actual al grupo docker.

 sudo usermod -a -G docker $USER

Nota: Debe cerrar sesión y volver a iniciar sesión para que los cambios surtan efecto.

Consulte este blog para obtener más información sobre cómo administrar Docker como usuario no root.

over 4 years ago · Santiago Trujillo Relatório

0

Debe administrar la ventana acoplable como un usuario no root. Para crear el grupo docker y agregar su usuario:

  1. Cree el grupo de acopladores.

    $ sudo groupadd docker

  2. Agregue su usuario al grupo docker.

    $ sudo usermod -aG docker $USER

  3. Cierre la sesión y vuelva a iniciarla para que se vuelva a evaluar la pertenencia a su grupo.

Si realiza la prueba en una máquina virtual, puede ser necesario reiniciar la máquina virtual para que los cambios surtan efecto.

En un entorno Linux de escritorio como X Windows, cierre la sesión por completo y luego vuelva a iniciarla.

En Linux, también puede ejecutar el siguiente comando para activar los cambios en los grupos:

$ newgrp docker

  1. Verifique que pueda ejecutar los comandos de la ventana acoplable sin sudo.

    $ docker run hello-world

over 4 years ago · Santiago Trujillo Relatório

0

bash en el contenedor como usuario raíz docker exec -it --user root <dc5> bash

crear un grupo docker si aún no se ha creado groupadd -g 999 docker

agregar usuario al grupo docker usermod -aG docker jenkins

cambiar permisos chmod 777 /var/run/docker.sock

over 4 years ago · Santiago Trujillo Relatório

0

Cuando trato de ejecutar comandos simples de docker como: $ docker ps -a

Recibo un mensaje de error: Got permission denied ... /var/run/docker.sock: connect: permission denied .

[…] ¿Cómo puedo arreglarlo?

TL; DR: hay dos formas (la primera, también mencionada en la pregunta en sí, fue abordada ampliamente por otras respuestas, pero tiene problemas de seguridad ; así que explicaré este problema y desarrollaré la segunda solución que también puede ser aplicable para este caso de uso bastante sensato).


Solo para recordar el contexto, el socket del demonio Docker es propiedad de root:docker :

 $ ls -l /var/run/docker.sock srw-rw---- 1 root docker 0 janv. 28 14:23 /var/run/docker.sock

por lo tanto, con esta configuración predeterminada, es necesario anteponer todos los comandos CLI de la ventana acoplable con sudo .

Para evitar esto, uno puede:

  1. agregue la cuenta de usuario de uno ( $USER ) al grupo docker , pero es bastante arriesgado hacerlo en la estación de trabajo personal, ya que esto equivaldría a proporcionar todos los programas ejecutados por el usuario con permisos de root sin ninguna solicitud de contraseña de sudo ni auditoría .

    Ver también:

    • esta página en la documentación oficial de Docker:
      https://docs.docker.com/engine/security/#docker-daemon-attack-surface
    • esta página que documenta el exploit relacionado:
      https://fosterelli.co/privilege-escalation-via-docker.html
  2. de lo contrario, se puede anteponer sudo automáticamente sin escribir sudo docker manualmente: para este objetivo, una solución consiste en agregar el siguiente alias en ~/.bashrc (ver, por ejemplo, este hilo para más detalles):

     __docker() { if [[ "${BASH_SOURCE[*]}" =~ "bash-completion" ]]; then docker "$@" else sudo docker "$@" fi } alias docker=__docker

    Entonces uno puede probar esto abriendo una nueva terminal y escribiendo:

     docker run --pul〈TAB〉 # → docker run --pull # autocompletion works docker run --pull always --rm -it debian:11 # ask one's password \docker run --help # bypass the alias (thanks to the \) and ask no password
over 4 years ago · Santiago Trujillo Relatório

0

ingrese el comando y explore la ventana acoplable sin el comando sudo

sudo chmod 666 /var/run/docker.sock

over 4 years ago · Santiago Trujillo Relatório

0

*** Nota importante sobre estas respuestas: el grupo docker no siempre es "docker", a veces es "dockerroot", por ejemplo, el caso de la instalación de Centos 7 por

 sudo yum install -y docker

Lo primero que debes hacer, después de instalar Docker, es

 sudo tail /etc/group

debería decir algo como

 ...... sshd:x:74: postdrop:x:90: postfix:x:89: yourusername:x:1000:yourusername cgred:x:996: dockerroot:x:995:

En este caso, es "dockerroot" y no "docker". Entonces,

 sudo usermod -aG dockerroot yourusername logout
over 4 years ago · Santiago Trujillo Relatório

0

Tienes que usar el ejecutor pns en lugar de la ventana acoplable. ejecute el siguiente parche que modifica el mapa de configuración y ya está todo listo.

 kubectl -n argo patch cm workflow-controller-configmap -p '{"data": {"containerRuntimeExecutor": "pns"}}' ;

referencia: https://www.youtube.com/watch?v=XySJb-WmL3Q&list=PLGHfqDpnXFXLHfeapfvtt9URtUF1geuBo&index=2&t=3996s

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda