Как правильно настроить права для скачанных торрентов в qbittorrent-nox?

Привет всем! Я недавно собрал домашний сервер для хранения файлов и установил qbittorrent-nox, чтобы скачивать торренты через веб-интерфейс, а затем работать с ними через Samba. 

Сначала у меня возникла проблема с тем, что директории для скачивания, создаваемые через веб-интерфейс, имели права 755, что мне не подходило. Я решил это, добавив в конфигурацию сервиса следующую строку:
<blockquote># [Unit]<br/>
# Description=qBittorrent-nox service for user %I<br/>
# Documentation=man:qbittorrent-nox(1)<br/>
# Wants=network-online.target<br/>
# After=local-fs.target network-online.target nss-lookup.target media-torrent.mount<br/>
# BindsTo=media-torrent.mount<br/>
#<br/>
# [Service]<br/>
# Type=simple<br/>
# <b>UMask=002</b><br/>
# PrivateTmp=false<br/>
# User=%i<br/>
# ExecStart=/usr/bin/qbittorrent-nox --webui-port=9000<br/>
# TimeoutStopSec=1800<br/>
#<br/>
# [Install]<br/>
# WantedBy=multi-user.target</blockquote> 

Теперь я столкнулся с другой проблемой: скачанные игры и программы имеют права <code>-rw-rw-r--</code>, из-за чего исполняемые файлы, размещенные на Samba-шаре, не запускаются без предварительного скачивания на локальную машину. Могли бы вы подсказать, как настроить скачивание всех файлов с правами 775? 

P.S. У меня создан Samba-пользователь, который добавлен в группу qbit, и все торрент-директории принадлежат этой группе. Если я вручную задаю директориям права 775 рекурсивно, то файлы запускаются непосредственно с Samba-шары.
  • 17 февраля 2025 г. 20:34
Ответы на вопрос 2
Чтобы настроить qBittorrent-nox для того, чтобы скачанные файлы имели права 775, вам нужно изменить два параметра: `UMask` и разрешения на основной каталог загрузки. `UMask` управляет правами доступа создаваемых файлов и директорий, и его значение определяет, какие права будут у файлов и каталогов по умолчанию.

Вот несколько шагов и советов, которые могут помочь вам:

1. **Обновление UMask**:
   У вас уже есть строка с `UMask=002` в конфигурации systemd для qBittorrent-nox. Это позволяет создавать файлы с правами 664 (rw-rw-r--) и директории с правами 775 (rwxrwxr-x). Если `UMask` установлен правильно и директории создаются с правами 775, но файлы имеют права 664, то это нормальное поведение. Вам нужно будет изменить передачу разрешений на уровень файловой системы, как я описываю ниже.

2. **Использование `setgid` на основной директории**:
   Чтобы все дочерние директории, созданные в папке загрузок, унаследовали группу и имели нужные права, вы можете установить бит `setgid` на основной каталог загрузки:
   ```bash
   chmod g+s /путь/к/каталогу/загрузок
   ```
   Это заставит все новые подкаталоги наследовать группу родительского каталога. 

3. **Правила для файлов**:
   Для файлов, создаваемых в каталоге, `UMask` действительно ограничивает их права. При исходной настройке файлов с правами 664, чтобы установить права 775, можно воспользоваться командой `chmod` для изменения прав после завершения загрузки. Однако, это потребует дополнительного скрипта или работы с `inotify`.

   Вы можете создать простой скрипт, который будет следить за загрузками и изменять права для новых файлов. Например:
   ```bash
   #!/bin/bash
   inotifywait -m -r -e create /путь/к/каталогу/загрузок | while read path action file; do
       chmod 775 "$path$file"
   done
   ```

   Запустите этот скрипт в фоновом режиме на вашем сервере, чтобы он автоматически менял права доступа на 775 при загрузке новых файлов.

4. **Проверка конфигурации Samba**:
   Убедитесь, что в конфигурации Samba (`smb.conf`) у вас правильно настроены параметры для обработки прав доступа и групп. Обычно вам нужно убедиться, что у вас установлены опции:
   ```ini
   create mask = 0775
   directory mask = 0775
   force group = qbit
   ```

С учетом этих шагов, вы должны быть в состоянии получить желаемые права 775 для скачанных файлов и директорий в qBittorrent.
qbittorrent умеет запускать команды после завершения скачивания. 
В веб-интерфейсе: Tools -> Options -> Downloads, поставь галку Run external program on torrent finished и впиши команду chmod -R 775 "%F/"
Похожие вопросы