Listas de control de acceso
La respuesta directa son las listas de control de acceso (ACL) . Sí, puedes encontrar un contraejemplo, pero son lo suficientemente buenos en la práctica (a diferencia de la simple escritura grupal que requiere que los usuarios piensen en ello todo el tiempo). Lo que sí requieren es que el administrador del sistema (root) defina los grupos, si desea que los archivos sean compartidos solo por un grupo con nombre (root puede elegir delegar, por ejemplo, aceptando grupos de LDAP, pero esa es otra historia).
Es necesario que los usuarios participantes tengan una umask de 022. Si crean rutinariamente archivos que no se pueden leer en todo el mundo, este esquema no funcionará. Pero si tienen una máscara de usuario restrictiva, es presumiblemente porque no quieren compartir archivos de todos modos.
Habilitación de ACL
Ubuntu no habilita las ACL de forma predeterminada, por lo que hay un requisito de administrador único. Edite /etc/fstab
utilizando su editor favorito y cambie cada línea correspondiente a un sistema de archivos donde desea compartir archivos: agregue acl
a las opciones. (Asegúrese de no cambiar ninguna otra línea y de no usar un editor que envuelva líneas largas). Aquí hay una línea de ejemplo con la acl
opción agregada:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
Para que la opción surta efecto la primera vez, use un comando como el siguiente (para cada sistema de archivos):
sudo mount -o remount,acl /
Instale las herramientas de ACL del acl
paquete.
Configurar el directorio compartido
Para tener archivos compartidos por el grupo mygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Si las personas crean archivos y los copian en el directorio compartido, los archivos serán legibles en todo el mundo (debido a la máscara de usuario) y cualquier persona en el grupo puede agregar y eliminar archivos (porque el grupo se puede escribir en grupo). La gente no puede editar los archivos de los demás, pero eso es algo bueno o te encontrarás con conflictos de edición de inmediato.
Si no tiene un grupo unix, puede agregar usuarios uno por uno:
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Control de versiones
Si desea que las personas puedan editar archivos en su lugar, también necesita algo para evitar conflictos de edición. Eso es control de versiones.
No necesita nada de esto para compartir un repositorio git. Sabes que hay soluciones como la gitosis, así que úsalas.
Simplemente haz esto:
Ahora todos en el
teamA
grupo pueden hacer todo dentro/src/teamA
La magia es el bit sgid (establecer id de grupo) en el directorio.
fuente
Si desea que los usuarios puedan acceder a los archivos en una carpeta compartida (por ejemplo, diferentes personas inician sesión en la misma máquina en diferentes momentos y necesitan acceso a los mismos archivos), puede usar
bindfs
para crear un directorio compartido.Permite que múltiples usuarios locales lean y escriban (crear, eliminar, renombrar, modificar ...) todos los archivos (incluidos los recién creados) desde un directorio compartido y sus subdirectorios. Cada usuario verá los archivos y carpetas (incluidos los recién creados) como pertenecientes a ellos.
Brevemente, corres
poner / home / shared disponible para usuario1, usuario2 y usuario3.
Instrucciones
Consulte Bindfs-SharedDirectoryLocalUsers (documentación de Ubuntu) para obtener instrucciones completas, incluida la configuración permanente (cada vez que enciende su computadora). Utilizo esto en mi propia máquina para varios directorios, cada uno con diferentes grupos para compartir (una carpeta está disponible para todas las cuentas, otra solo para cuentas de trabajo, otra solo para cuentas personales).
Del post:
Listas de control de acceso (ACL)
Las notas de documentación:
Ver la respuesta de Gilles para más detalles.
fuente
Puede combinar la solución de Shellholic con un trabajo cron que actualiza el gid para todos los archivos en esa carpeta cada 15 segundos o algo similar.
fuente