2011-05-09 08:44:23 +0000 2011-05-09 08:44:23 +0000
81
81

Dar permisos de escritura a varios usuarios en una carpeta en Ubuntu

Hay una carpeta que es propiedad del usuario tomcat6:

drwxr-xr-x 2 tomcat6 tomcat6 69632 2011-05-06 03:43 document

Quiero permitir a otro usuario (ruser) permisos de escritura en la carpeta de documentos. Los dos usuarios (tomcat6 y ruser) no pertenecen al mismo grupo. He intentado usar setfacl:

sudo setfacl -m u:ruser:rwx document

pero esto me da el error setfacl: document: Operation not supported. Por favor, ayúdame.

Respuestas (2)

151
151
151
2011-05-09 10:06:57 +0000

Hay dos maneras de hacerlo: establecer el directorio en “world” writable o crear un nuevo grupo para los dos usuarios y hacer el directorio escribible para ese grupo.

Obviamente hacer que el mundo sea escribible es una mala cosa, por lo que la segunda opción es preferible.

Los usuarios en Linux pueden pertenecer a más de un grupo. En este caso quieres crear un grupo nuevo, llamémoslo tomandruser:

sudo groupadd tomandruser

Ahora que el grupo existe, agrega los dos usuarios a él:

sudo usermod -a -G tomandruser tomcat6
sudo usermod -a -G tomandruser ruser

Ahora todo lo que queda es establecer los permisos en el directorio:

sudo chgrp -R tomandruser /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory

Ahora sólo los miembros del grupo tomandruser pueden leer, escribir o ejecutar cualquier cosa dentro del directorio. Fíjate en el argumento -R de los comandos chmod y chgrp: esto les dice que se vuelvan a meter en cada subdirectorio del directorio de destino y que modifiquen cada archivo y directorio que encuentren.

Puede que también quieras cambiar 770 por algo como 774 si quieres que otros puedan leer los archivos, 775 si quieres que otros lean y ejecuten los archivos, etc. Los cambios en la asignación de grupos no tendrán efecto hasta que los usuarios cierren la sesión y vuelvan a entrar.

Si también quieres (probablemente lo haces) que los nuevos archivos creados dentro del directorio por uno de los usuarios sean automáticamente escritos por otros en el grupo, entonces mira aquí .

3
3
3
2018-07-23 14:26:48 +0000

El script de ejemplo muestra un ejemplo para dar permiso a w (write)/ r (read) / x (execute) a la ruta de la carpeta dada /path/to/the/directory para USER1 y USER2. Si quieres dar sólo acceso de escritura por favor reemplaza rwx por w.

  • *
#!/bin/bash

# Block others and people in the same group to do read/write/execute on give folder:    
sudo chmod 700 /path/to/the/directory 

#Give read/write/execute access to USER1 on give folder:
sudo setfacl -R -m user:USER1:rwx /path/to/the/directory 

#Give read/write/execute access to USER2 on give folder:
sudo setfacl -R -m user:USER2:rwx /path/to/the/directory