GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo cambiar un archivo a un subuid sin sudo?

Los Subuids no están destinados a funcionar de la manera que esperas que funcionen. Están diseñados para asignar UID en un espacio de nombres de usuario a diferentes UID fuera de ese espacio de nombres, lo que resulta útil (y en realidad fue diseñado) para contenedores.

Sin embargo, un proceso aún puede tener solo un conjunto de UID (espacio de nombres de usuario), y los usuarios no pueden cambiar la propiedad de los archivos, por razones obvias de seguridad. No importa, en lo que se refiere al proceso en sí, si el usuario es realmente otra persona fuera del espacio de nombres.

Por eso el chown el comando falla:no importa si podrías tiene algún otro UID, si el espacio de nombres fuera diferente , en ese momento, no tiene ese UID y, por lo tanto, no puede cambiar la propiedad de ningún archivo (ya que no es root).

En cuanto a por qué puede eliminar el archivo:en realidad no tiene nada que ver con subids, sino que todo depende de que tenga la propiedad del directorio en el que reside el archivo. Dado que la eliminación del archivo cambia el directorio, y no el archivo en sí, si puede escribir el directorio, puede eliminar cualquier archivo de él (excepto los directorios "pegajosos").


Hay un programa lxc-usernsexec que viene junto con lxc . Esto le permite reasignar las identificaciones de usuario usando los mapas /etc/subuid y /etc/subgid .

Específicamente, puede hacer lo siguiente.

  1. lxc-usernsexec -- touch /tmp/test
  2. ls -l /tmp/test mostrará que el archivo es propietario:grupo igual que el primer par subuid:subgid en su mapa.
  3. rm /tmp/test debería dar un error ya que actualmente no tiene el uid/gid correcto.
  4. lxc-usernsexec -- rm /tmp/test debe eliminar el archivo.

¡Espero que esto ayude! Lo anterior probablemente requiera la configuración de varias cosas para el uso del contenedor LXC sin privilegios. En particular, creo que /proc/sys/kernel/unprivileged_userns_clone debería ser 1.


Tu problema no tiene nada que ver con Subuid.

Según https://superuser.com/questions/697608/chown-operation-not-permitted

Los usuarios sin privilegios (no root) no pueden compartir archivos con otros nombres de usuario. Para usar chown, un usuario debe tener los privilegios del usuario de destino. En otras palabras, solo la raíz puede dar un archivo a otro usuario.


Linux
  1. Cómo configurar Sudo sin contraseña para un usuario específico

  2. ¿Cómo agregar a un archivo como sudo?

  3. ¿Cómo puede un administrador de archivos montar una unidad sin root?

  4. ¿Cómo eliminar un archivo sin usar rm?

  5. ¿Cómo puedo usar sudo para verificar si existe un archivo?

Cómo agregar un usuario a Sudoers en Debian

Cómo cambiar el propietario del archivo/grupo con el comando chown en Linux

Cómo ejecutar el comando Sudo sin contraseña

¿Cómo monta el Administrador de archivos una unidad externa sin Sudo?

Cómo ejecutar comandos Sudo sin contraseña

Cómo ejecutar comandos sudo sin contraseña