
У меня есть программа, которая что-то делает. Она работает под пользователем A.
Совсем небольшая часть этого процесса заключается в передаче файла в каталог в домашнем каталоге пользователя B. Передача выполняется с помощью вызова API языка, на котором он написан, а не с помощью системного вызова команды оболочки.
Теперь я вижу несколько способов осуществить этот перевод.
- Запустите программу от имени пользователя root.
- Поместите A и B в одну группу и настройте владельца каталога.
- sudo программа
- сделайте шаг с системным вызовом и sudo, который
- поместите файл локально в A и выполните передачу вовне (передайте проблему на аутсорсинг)
- ACL каталог B
- ...
Я думаю, что это требование распространено, поскольку запуск программы через root — это дурной тон. Какой наиболее распространенный способ справиться с этим?
РЕДАКТИРОВАТЬ
Программа A генерирует файл. B должна иметь возможность прочитать и удалить его.
решение1
Если важно не видеть другие файлы пользователя A, то создайте отдельный общий каталог, в котором оба пользователя будут иметь права на чтение и запись, и поместите файлы туда.
Или вы можете скопировать/переместить файл сразу после его создания с помощью inotifywatch и chown в B, вот пример, поместите его в cron
Автоматически копировать файлы в место назначения сразу после их создания.