Для решения вашей проблемы с правами доступа в FTP-сервере vsftpd на Debian можно использовать следующие подходы:
### 1. Изменение прав доступа к файлам и директориям
Один из простых способов решить вашу проблему — это установить более подходящие права доступа к загружаемым файлам и директориям. Для этого можно использовать групповую принадлежность пользователей.
#### Шаги:
1. **Создайте группу** для вашего FTP-пользователя. Например, `ftpusers`.
```bash
sudo groupadd ftpusers
```
2. **Добавьте вашего FTP-пользователя в эту группу**:
```bash
sudo usermod -aG ftpusers имя_пользователя
```
3. **Установите группу для основной директории FTP**:
```bash
sudo chown :ftpusers /path/to/ftp/directory
```
4. **Установите права доступа, чтобы группа могла читать и записывать файлы**:
```bash
sudo chmod 2775 /path/to/ftp/directory
```
5. **Убедитесь, что файлы и директории, создаваемые от имени root, наследуют правильные права**. Для этого можно установить SGID-бит:
```bash
sudo chmod g+s /path/to/ftp/directory
```
Теперь любые файлы, загруженные в эту директорию от имени `root`, будут принадлежать группе `ftpusers`, и пользователь, который также является членом этой группы, сможет их скачивать.
### 2. Настройка конфигурации vsftpd
Убедитесь, что конфигурация вашего `vsftpd` позволяет пользователям читать файлы и директории. В файле `/etc/vsftpd.conf` проверьте следующие параметры:
- Убедитесь, что включен параметр `write_enable=YES`, чтобы разрешить запись.
- Также убедитесь, что пользователи могут работать в своих домашний директориях:
```plaintext
chroot_local_user=YES
```
### 3. Использование ACL (Access Control Lists)
Если стандартные права доступа не позволяют вам достигнуть желаемых результатов, можно использовать ACL для более гибкого контроля доступа.
#### Шаги:
1. **Установите пакет, если он не установлен**:
```bash
sudo apt-get install acl
```
2. **Включите поддержку ACL для файловой системы**. Проверьте `/etc/fstab` и добавьте `acl` к нужной вам файловой системе. Например:
```
UUID=... /path/to/ftp/directory ext4 defaults,acl 0 2
```
3. **Перемонтируйте файловую систему**:
```bash
sudo mount -o remount /path/to/ftp/directory
```
4. **Настройте ACL для директории**:
```bash
sudo setfacl -m g:ftpusers:rwx /path/to/ftp/directory
sudo setfacl -R -m g:ftpusers:rwx /path/to/ftp/directory/*
```
Теперь пользователи группы `ftpusers` смогут читать и записывать файлы в папке без необходимости изменения прав доступа на каждый файл.
### Заключение
Таким образом, после настройки прав доступа и/или использования ACL, ваш FTP-пользователь сможет скачивать файлы, загруженные от имени `root`, без необходимости ручного изменения прав на каждом файле.