Proteger los cambios a un archivo de texto plano escrito por la ejecución estándar del usuario del script bash

0

He escrito un sencillo script de bash que quiero usar como un reloj de tiempo para los empleados (estudios de trabajo) en mi laboratorio de computación. El guión funciona muy bien.
1. Cada estudio de trabajo tiene dos iconos (dos scripts de bash separados) en su escritorio, uno para marcar y otro para cerrar. Ambos escriben en el mismo archivo .txt.
2. Cuando hacen clic en el icono del reloj, el script escribe CLOCK IN y la fecha y hora actuales en un archivo de texto sin formato en una carpeta compartida de Dropbox (compartida entre la computadora de trabajo y estudio). 3. La secuencia de comandos se detiene por cinco segundos para que el archivo .txt pueda actualizarse en Dropbox.
4. El navegador se abre con el registro actualizado del reloj de trabajo y estudio. Esto se hace a través de un enlace compartido de Dropbox.

Aquí está la secuencia de comandos para registrar la entrada. La secuencia de comandos de salida del reloj solo dice CLOCK OUT en su lugar.

#!/bin/bash
# Write to .txt file
echo " CLOCK IN - $(date '+%x - %r')"  >> /Users/Username/Dropbox/Joe-Time-Clock.txt 
# Give Dropbox a chance to sync.
sleep 5
# Open in browser so student can see clock in time.
open -a Google\ Chrome "https://www.dropbox.com/s/7vbgpc9x29d0z98/Time-Clock.txt?dl=0"
exit 0

Aquí está la salida de texto sin formato:

Joe Smith - Time Clock
 CLOCK IN - 08/17/2015 - 06:00:25 PM
CLOCK OUT - 08/17/2015 - 06:00:48 PM
 CLOCK IN - 08/17/2015 - 06:00:52 PM
CLOCK OUT - 08/17/2015 - 06:05:14 PM
 CLOCK IN - 08/17/2015 - 06:14:51 PM
CLOCK OUT - 08/17/2015 - 06:15:11 PM

A partir de ahora, el estudiante puede simplemente abrir Joe-Time-Clock.txt cuando llegan tarde y cambiar la información. Los estudios de trabajo se realizan regularmente en Mac (10.6 Snow Leopard) y tengo una cuenta de administrador a la que no tienen acceso. Me gustaría que pudieran ejecutar el script en el escritorio que escribe en su archivo de reloj de tiempo. Sin embargo, no quiero que puedan editar el script o editar el registro de entrada / salida del reloj (Joe-Time-Clock.txt).

Hoy jugué con los permisos. Si Joe-Time-Clock.txt está sincronizado con Dropbox y tiene habilitada la propiedad de la raíz, entonces Dropbox, por ser una aplicación por usuario, no podría sincronizarla porque carecería de los permisos. De lo contrario, me gustaría probar esta solución . Cualquier idea es bienvenida. Muchas gracias de antemano.

Nota al margen: estoy mucho más acostumbrado a trabajar con permisos y línea de comandos en Linux. Hoy, cuando pasé un poco de tiempo en CLI en OS X, me sentí un poco extraño, así que cuantos más detalles, mejor. ¡Gracias!

    
pregunta jbrock 18.08.2015 - 05:35

0 respuestas

Lea otras preguntas en las etiquetas