¿Permitir leer y eliminar pero no crear archivos en el directorio de Linux?

1

Hay muchas preguntas relacionadas con el caso opuesto a esta pregunta , pero no he logrado encontrar una respuesta de esta manera.

¿Es posible establecer permisos en un directorio de Linux para que un usuario pueda leer y eliminar archivos ya presentes, pero no crear nuevos?

Sospecho que no, ya que parece que eliminar debe requerir el acceso de 'escritura' al directorio, ¡pero estaría feliz de que me demuestren lo contrario!

mermelada
fuente

Respuestas:

1

La respuesta breve aquí es no, no puede hacer lo que está pidiendo con el sistema de permisos de archivos existente. Eliminar requerirá acceso de escritura, e incluso el bit fijo en el directorio solo evitará eliminaciones / cambios de nombre por parte de los no propietarios, no existe un equivalente inverso.

Supongo que podría haber una manera de hacer esto con FUSE, pero eso sería mucho trabajo: si vas a tener ese tipo de problemas, una aplicación para controlar el acceso sería mucho más flexible.

Finalmente, si se trata simplemente de cambiar / actualizar / eliminar archivos, probablemente usaría un sistema de control de versiones como git para permitir que alguien cambie lo que quiera en su copia local, pero luego tenga que enviar una solicitud de extracción (u obtener permiso para verificar en etc.) sus cambios a la copia maestra. Requiere un cambio en el flujo de trabajo, pero le ofrece buenas formas de retroceder, rechazar cambios, etc.

Adam C
fuente
Este es un directorio de archivos de registro, por lo que queríamos permitir que el usuario lo borrara manualmente, pero no poder modificar los registros; parece que eliminar el archivo más antiguo automáticamente o confiar en que el usuario no arruine los archivos es la respuesta. :)
Jam
1
Ah, en ese caso, podría usar el bit adhesivo, o los permisos en general para evitar que los arruinen y usar un trabajo cron, o una de las utilidades de rotación de registros estándar (configurables) para administrarlo automáticamente. En general, he descubierto que algo como: archivar cualquier cosa anterior a 1 semana (comprimir) y luego eliminar algo anterior a 6 meses funciona bien, pero depende del caso de uso.
Adam C
1
Solo como referencia, logrotate es bastante estándar en estos días, y también hay otras opciones: linuxcommand.org/man_pages/logrotate8.html
Adam C