Передача файла между разными пользователями: лучшая стратегия?

Передача файла между разными пользователями: лучшая стратегия?

У меня есть программа, которая что-то делает. Она работает под пользователем A.

Совсем небольшая часть этого процесса заключается в передаче файла в каталог в домашнем каталоге пользователя B. Передача выполняется с помощью вызова API языка, на котором он написан, а не с помощью системного вызова команды оболочки.

Теперь я вижу несколько способов осуществить этот перевод.

  • Запустите программу от имени пользователя root.
  • Поместите A и B в одну группу и настройте владельца каталога.
  • sudo программа
  • сделайте шаг с системным вызовом и sudo, который
  • поместите файл локально в A и выполните передачу вовне (передайте проблему на аутсорсинг)
  • ACL каталог B
  • ...

Я думаю, что это требование распространено, поскольку запуск программы через root — это дурной тон. Какой наиболее распространенный способ справиться с этим?

РЕДАКТИРОВАТЬ

Программа A генерирует файл. B должна иметь возможность прочитать и удалить его.

решение1

Если важно не видеть другие файлы пользователя A, то создайте отдельный общий каталог, в котором оба пользователя будут иметь права на чтение и запись, и поместите файлы туда.

Или вы можете скопировать/переместить файл сразу после его создания с помощью inotifywatch и chown в B, вот пример, поместите его в cron

Автоматически копировать файлы в место назначения сразу после их создания.

Связанный контент