Разрешение rsync отклонено в подпапке www
Мне нужно разрешить конкретному пользователю загружать файлы с моего веб-сервера. Файлы будут находиться в определенном каталоге, и я не хочу, чтобы загрузчик читал, записывал или делал что-либо за пределами этого каталога. Итак, я создал обычного пользователя — назовем ее Загрузчик — на сервере Debian 11. Я использовал опцию -d, чтобы указать домашний каталог этого пользователя на /var/www/example.com/Downloader.
useradd -m -d /var/www/example.com/Downloader Downloader
Все файлы в каталоге example.com и ниже имеют следующие разрешения:
sudo chown -R WebAdmin /var/www/example.com/
sudo chgrp -R www-data /var/www/example.com/
sudo chmod -R 750 /var/www/example.com/
sudo chmod g+s /var/www/example.com/
и я дополнительно изменил каталог Downloader следующим образом:
cd /var/www/example.com/Downloader
sudo chgrp -R Downloader ./
sudo chmod -R 750 ./
sudo chmod g+s ./
Итак, теперь разрешение выглядит так:
-rwxr-x--- 1 WebAdmin Downloader 740 Apr 11 11:33 index.php
Когда я попробовал команду:
rsync -arzvP Downloader@example.com:/var/www/example.com/Downloader/ ./
Я получаю сообщение об ошибке:
Could not chdir to home directory /var/www/example.com/Downloader/: Permission denied
receiving incremental file list
rsync: [sender] change_dir "/var/www/example.com/Downloader" failed: Permission denied (13)
sent 8 bytes received 9 bytes 1.79 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1677) [Receiver=3.1.3]
rsync: [Receiver] write error: Broken pipe (32)
Я понимаю, что пользовательский Downloader не может перемещаться по родительским каталогам, /var/www и т. д., но я думал, что создание домашнего каталога /var/www/example.com/Downloader исправит это.
Кстати, я тоже пробовал
rsync -arzvP Downloader@example.com:/ ./
и он по сути начал загрузку из корневой папки (включая загрузочный dev и другие каталоги)! Я, конечно, этого не хочу!
Итак, как мне добиться желаемого результата?