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.

Cómo crear el usuario de la máquina anfitriona en Docker Desktop WSL 2 para montar mediante `-v /etc/passwd:/etc/passwd:ro`?

Uso Docker Desktop en Windows con WSL 2. Quiero ejecutar un contenedor con --user 1000:1000, por ejemplo, este usuario aún no ha sido creado dentro del contenedor, por lo que tengo que montar la carpeta /etc/passwd de la máquina host para ejecutar el contenedor (con -v /etc/passwd:/etc/passwd:ro). Pero, ¿dónde se encuentra esta carpeta /etc/passwd en la máquina host y cómo puedo agregar un nuevo usuario a ella?

Intenté acceder a la distribución docker-desktop usando el comando wsl -d docker-desktop, pero la carpeta /etc/passwd allí no está montada.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener la ubicación de /etc/passwd en la máquina host, puedes ejecutar el siguiente comando en PowerShell:

    wsl -d docker-desktop sudo find / -name passwd
    

    Esto ubicará el archivo y mostrará la ruta. Una vez que sepas la ruta, puedes agregar un nuevo usuario ejecutando el siguiente comando en PowerShell:

    echo "newuser:x:1001:1001:New User:/home/newuser:/bin/bash" | sudo tee -a /path/to/etc/passwd
    

    Reemplaza newuser con el nombre de usuario que deseas crear y /path/to/etc/passwd con la ruta que obtuviste en el paso anterior. El comando anterior agregará un nuevo usuario con UID y GID de 1001. Puedes modificar estos valores según tus necesidades.

    Una vez que hayas agregado el nuevo usuario a /etc/passwd en la máquina host, puedes usar la opción -v /etc/passwd:/etc/passwd:ro para montarlo en el contenedor y ejecutarlo con --user 1001:1001, por ejemplo.

Comments are closed.