¿Cómo puedo compartir un directorio con otro usuario?

8

No quiero que nadie en el sistema pueda acceder a la carpeta compartida, quiero que sea accesible solo para un conjunto restringido de usuarios.

¿Cómo hago eso?

Emanuele
fuente

Respuestas:

9

Tomado de esta excelente publicación en los foros de Ubuntu por Morbius1.

La forma clásica de Linux de hacer este tipo de cosas es algo como esto:

  1. Crea la carpeta compartida:

    sudo mkdir /home/Shared
    
  2. Crea el nuevo grupo de usuarios:

    sudo addgroup newgroup
    
  3. Cambie la propiedad de la carpeta compartida al nuevo grupo:

    sudo chown :newgroup /home/Shared
    
  4. Agregue los usuarios deseados a ese grupo:

    sudo adduser user1 newgroup
    

Repita para todos los usuarios.

Ahora tiene que tomar algunas decisiones sobre lo que desea que esos usuarios puedan hacer:

  • [a] Todos los usuarios del grupo pueden agregar y eliminar de la carpeta y pueden leer y no escribir en los archivos de los demás:

    sudo chmod 0770 /home/Shared
    
  • [b] Igual que el anterior pero solo el propietario del archivo puede eliminarlo:

    sudo chmod 1770 /home/Shared
    
  • [c] Todos los usuarios del grupo pueden agregar y eliminar de la carpeta y pueden leer y escribir en los archivos de los demás:

    sudo chmod 2770 /home/Shared
    
  • [d] Igual que [c], excepto que solo el propietario del archivo puede eliminarlo:

    sudo chmod 3770 /home/Shared
    

A 1en la primera posición del comando chmod es el bit fijo que impide la eliminación de un archivo a cualquier persona que no sea el propietario.

A 2en la primera posición del comando chmod es el bit setgid que obliga a todos los archivos nuevos o copiados a tener el grupo de esa carpeta.

A 3en la primera posición del comando chmod es la combinación de los bits sticky ( 1) y setgid ( +2).

Hay una advertencia para todo esto en lo que respecta al bit setgid. Todos los archivos nuevos creados en y cualquier archivo copiado a esa carpeta de hecho heredarán el grupo de la carpeta. Pero no los archivos movidos a esa carpeta. Los archivos movidos conservan la propiedad desde donde se movieron. Una forma de superar este problema es usar bindfs.

Finalmente, si desea que otras personas fuera del grupo puedan ver los archivos pero no cambiarlos, cambie el 0 final en el chmodcomando a 5, por ejemplo:

sudo chmod 0775 /home/Shared
Warren Hill
fuente