
¿Hay alguna manera (con ACL) de proteger el contenido de una carpeta? Los usuarios deben crear archivos dentro de una carpeta, pero no sobrescribirlos, editarlos o eliminarlos. es posible?
Respuesta1
Se podría utilizar inotifywait
para observar el directorio y realizar cambios, como cambiar la propiedad de cada nuevo archivo copiado en el directorio. En una distribución basada en Debian, instale el software de la siguiente manera: apt-get install inotify-tools
.
Cree un script, tal vez /usr/local/sbin/inbox.sh
, de la siguiente manera.
#!/usr/bin/env bash
inotifywait -m -e create "/path/to/directory" |
while read path event file; do
if [ "$event" = "CREATE" ]; then
chown root:root "$path$file"
fi
done
Otorgue permiso al script para ejecutarse ( chmod 0700 /usr/local/sbin/inbox.sh
). Luego ejecútelo en el momento del arranque desde, por ejemplo, /etc/rc.local
cualquier archivo RC que sea apropiado: /usr/local/sbin/inbox.sh &
.
De acuerdo con lamanual, -m
monitorea indefinidamente y -e
vigila un evento específico. Dentro del while
bucle, podría ser posible recibir un evento como CREATE,ISDIR
, que indica la creación de un directorio, por supuesto. Los directorios no son el objetivo de la pregunta; por lo tanto, la if
declaración contiene un comando para responder solo a archivos nuevos, que están representados con el evento CREATE
. La path
variable from inotifywait
tiene un carácter de barra diagonal, por lo que $path
y $file
se puede concatenar sin especificar una barra diagonal entre las dos.