configurar permisos predeterminados con setfacl

configurar permisos predeterminados con setfacl

Estoy intentando establecer permisos predeterminados en la estructura de mi directorio usando acl. Me gustaría tener los siguientes permisos predeterminados para directorios y archivos respectivamente:

drwx--x---
-rw-r-----

pero cuando configuro permisos predeterminados solo grouppara x:

setfacl -R -d -m g::x my_dir

entonces los directorios recién creados tienen los permisos deseados, pero los archivos recién creados tienen -rw-------en lugar de -rw-r-----. En otras palabras, estoy intentando eliminar rel permiso de los directorios y al mismo tiempo conservar rel permiso de los archivos.

Cómo puedo conseguir esto ?

Respuesta1

Las ACL de Linux/Solaris no admiten esto. No puede establecer diferentes ACL predeterminadas para archivos y directorios.

Rara vez es útil tener directorios que se puedan recorrer pero cuyo contenido no se pueda enumerar (ejecutables pero no legibles). El hecho de que funcione es un accidente histórico. Sí, en ocasiones puede resultar útil, pero ¿realmente lo necesitas? (Es posible que desee hacer esto como una pregunta separada).

Si realmente necesita directorios y archivos con diferentes permisos, aquí hay algunas posibilidades que puede considerar:

  • Haga que su aplicación cambie la propiedad de los archivos que crea en lugar de depender de las propiedades intrínsecas del sistema de archivos.
  • Haga que todo sea privado de forma predeterminada ( setfacl -d -m group:mygroup:X) y use una de las sugerencias en¿Permiso Group+rx solo en directorios que usan ACL?:

    • Exponga archivos públicos de grupo mediante montajes vinculados en lugar de hacerlo directamente.
    • Mire el árbol con inotify y ejecútelo setfaclen nuevos archivos regulares.

Respuesta2

Parece que no puedes hacer eso con ni setfaclni umask, ya que ninguno de los dos parece permitir valores predeterminados separados para archivos y directorios.Vea esta pregunta similar para otras opciones.. Si desea forzar que alguna aplicación cree directorios sin permiso de lectura y sin archivos, puede modificarlo o probar LD_PRELOAD con solo un archivo binario (aunque escribir una biblioteca para eso podría ser un poco excesivo).

información relacionada