Transferir un archivo entre diferentes usuarios: ¿la mejor estrategia?

Transferir un archivo entre diferentes usuarios: ¿la mejor estrategia?

Tengo un programa que está haciendo algunas cosas. Se ejecuta bajo el usuario A.

Una parte muy pequeña es transferir un archivo a un directorio en la casa del usuario B. La transferencia se realiza mediante una llamada API del lenguaje en el que está escrito y no mediante una llamada al sistema de un comando de shell.

Ahora veo varias formas de realizar esa transferencia.

  • Ejecute el programa como root.
  • Coloque A y B en el mismo grupo y ajuste la propiedad del directorio
  • sudo el programa
  • haz el movimiento con una llamada al sistema y sudo que
  • coloque el archivo localmente en A y realice la transferencia externamente (subcontrate el problema)
  • ACL el directorio de B
  • ...

Creo que el requisito es común ya que ejecutar un programa mediante root es de mal gusto. ¿Cuál sería la forma más común de manejarlo?

EDITAR

El programa de A genera el archivo. B debería poder leerlo y eliminarlo.

Respuesta1

Si es importante no ver los otros archivos de un usuario, cree un directorio común separado donde ambos usuarios tengan derechos de lectura y escritura y coloque los archivos allí.

O puede copiar/mover el archivo tan pronto como se cree con inotifywatch y cambiarlo a B, aquí hay un ejemplo, póngalo en cron

Copie los archivos automáticamente al destino tan pronto como se creen

información relacionada