Sí, las ACL: s permiten configurar libremente diferentes derechos para diferentes usuarios o grupos. IIRC: los permisos de grupo habituales limitan el conjunto de permisos que los grupos y los usuarios pueden tener a través de ACL: s (como se muestra mask
en la figura getfacl
), pero setfacl
deben ocuparse de eso si agrega permisos.
Pero en algunos casos, debe preguntar si el conjunto de permisos tiene algún sentido.
Tengo 3 usuarios con estos permisos deseados ....
- user1 rwx
- user2 rw_
- user3 r__
Puede implementar esto con ACL: s, o (aproximadamente) con los permisos habituales de Unix haciendo que user1 sea el propietario del archivo, user2 un miembro del grupo y permita que otros, incluido user3, tengan acceso de lectura. Aunque entonces todos (con acceso al directorio) también tendrían acceso de lectura.
Consideremos el significado de esos permisos. Tiene un usuario que puede leer y otro que puede leer y escribir. Eso es completamente usual. Ninguno de estos tiene acceso para ejecutar el archivo, pero se supone que un tercer usuario también puede hacerlo.
Eso no tiene mucho sentido en mi mente. Cualquier usuario que pueda leer el archivo, puede hacer una copia (*), marcarlo como ejecutable y ejecutarlo, sin acceso para ejecutar el archivo original. La única situación que tiene sentido para tener acceso de ejecución para algunos usuarios pero no para otros, es cuando el ejecutable tiene privilegios elevados a través de suid. Pero si ese fuera el caso, tampoco debería tener otros usuarios con acceso de escritura al archivo.
En el mismo sentido, user4 with -wx
y user5 with --x
no tienen sentido para mí. El acceso de solo escritura podría tener sentido si existiera la posibilidad de permitir solo anexos , pero el sistema de permisos no es tan específico.
(* a menos que no puedan escribir en ningún lado)
Sin embargo, si eliminamos el requisito extraño para el x
bit, nos queda un archivo donde user1 y user2 deberían tener acceso de escritura, y user3 debería tener acceso de lectura. Un escritor y varios lectores serían fáciles con el modelo tradicional, pero este caso necesitaría trucos para combinar los permisos de archivos con los permisos del directorio que los contiene. Afortunadamente, en muchos casos un usuario con más permisos es suficiente.
Sin el requisito en el bit de ejecución, esto parece un caso para usar ACL: s. Pero con esto, este ejemplo en particular me parece bastante complicado.