
Машина A содержит важные исходные данные, которые необходимо скопировать. Машина B — это место, куда будут скопированы данные. Они обе — Ubuntu. Я хочу иметь автоматизированный процесс, который позволяет машине A создавать зашифрованный tarball и копировать его на машину B без вмешательства человека, но не позволяет ничего, кроме копирования файла в целевой каталог.
Я думал об использовании chroot jailed account, но это кажется сложным в настройке и слишком сложным. Я просто хочу, чтобы машина A могла копировать файлы на машину B с помощью автоматического cron, но я также хочу запретить механизму, который позволяет копировать, разрешать любые другие действия (копирование в любой другой каталог, вход в систему, выполнение любых других команд неинтерактивно и т. д.). Кроме того, передача должна быть зашифрована (например, с использованием ssh каким-то образом).
решение1
Возможно, вы захотите разрешить B извлекать tar-файлы из A, а не позволять A отправлять их в B.
По сути, задание cron на компьютере A создаст tarball, даст ему уникальное имя (например, добавит временную метку), поместит его в каталог, к которому B может получить доступ (через ограниченную учетную запись на компьютере A), а затем заставит B периодически проверять этот каталог и перемещать все найденные там файлы к себе.
Такая настройка имеет дополнительное преимущество, поскольку не требует от A наличия учетной записи на B, а это значит, что в случае взлома A злоумышленник не получит бесплатный доступ к B.
(править) Для копирования по SSH воспользуйтесь командой scp.