Я не очень знаком с ищейкой, но возможно у Вас была бы лучшая удача с wireshark?
Правильный способ сделать это (хотя при этом меняются права доступа, поэтому вы не можете просто восстановить из резервной копии, если они были важны), это добавить следующую команду к вашей rsynccommand
--no-p --no-g --chmod=ugo=rwX
Где
- no-p
отключает копирование разрешений
- no-g
отключает групповое копирование, а
- chmod = ugo = rwX
обеспечивает включение всех немаскированных битов
Вы пытаетесь сделать что-то, что конкретно запрещено установленными разрешениями. Вы должны либо изменить установленные разрешения, либо предоставить вашей программе особые привилегии. Одно из исправлений может заключаться в создании на сервере задания cron
, которое фиксирует права доступа к каталогу. В качестве альтернативы, у вас может быть программа, которая запускается от имени root
, которая ожидает команды из сценария ssh
и фиксирует разрешения для каталога.
Вы сможете сделать это, сняв флаг -a из rsync и используя вместо него любые нужные флаги. Логически из конфигурации вы не хотите делать это как root, что означает, что вам нужно игнорировать разрешения на стороне назначения. Убедитесь, что вы не включили -p в команду rsync и у вас должна быть возможность безопасно копировать файлы с root @ serverone на user @ servertwoи он должен иметь возможность создавать каталоги и т. д. Просто помните, что ваше дерево разрешений не будет там на servertwo, если вам нужно восстановить из резервной копии, это должно быть довольно легко написать сценарий для исправления, я надеюсь.
В противном случае вам потребуется специальный доступ для создания файлов на сервере servertwo и управления ими. Это можно сделать, установив rsyncd.conf и используя rsync в режиме демона, чтобы не разрешать ssh между двумя хостами ( из вопроса неясно, могут ли другие пользователи иметь доступ к хосту, так что это может быть недостаточно безопасно).