Transferir um arquivo entre diferentes usuários: melhor estratégia?

Transferir um arquivo entre diferentes usuários: melhor estratégia?

Eu tenho um programa que está fazendo algumas coisas. Ele está sendo executado pelo usuário A.

Uma pequena parte disso é transferir um arquivo para um diretório na casa do usuário B. A transferência é feita por uma chamada de API da linguagem em que está escrita e não por uma chamada de sistema de um comando shell.

Agora vejo várias maneiras de fazer essa transferência.

  • Execute o programa como root.
  • Coloque A e B no mesmo grupo e ajuste a propriedade do diretório
  • sudo o programa
  • faça a mudança com uma chamada de sistema e sudo isso
  • coloque o arquivo localmente em A e faça a transferência externamente (terceirizar o problema)
  • ACL o diretório de B
  • ...

Acho que o requisito é comum, pois executar um programa via root é de mau gosto. Qual seria a maneira mais comum de lidar com isso?

EDITAR

O programa de A gera o arquivo. B deve ser capaz de lê-lo e excluí-lo.

Responder1

Se for importante não ver os outros arquivos do usuário A, crie um diretório comum separado onde ambos os usuários tenham direitos de leitura e gravação e coloquem os arquivos lá.

Ou você pode copiar/mover o arquivo assim que ele for criado com inotifywatch e chown para B, aqui está um exemplo, coloque-o no cron

Copie os arquivos automaticamente para o destino assim que forem criados

informação relacionada