Skip to main content

Установка параметра transmission UMASK 000 в файле settings.json раз в минуту

Для чего

В transmission флаг UMASK 000 разрешает всем пользователям полные права на редактирование и изменения файлов и папок, созданных им. Это предотвращает проблемы с доступом через сетевой диск в Windows и другие проблемы с отсутствием доступа на перемещение, редактирование или удаление. Это не лучший способ, но в своей небольшой сети достаточно беспроблеммный и простой. Только каждый раз при перезапуски контейнера transmission происходит восстановление конфиг файла settings.json и установка UMASK 002 вместо 000.

Решение

Для решения этой проблемы необходимо создать скрипт, который бы каждую минуту просматривал конфиг файл и если в нем установлено UMASK 002 менял бы в UMASK 000. Для этого создадим файл следующего содержания и назовем его umask.sh

#!/bin/bash
sed -i '77 s/002/000/' /config/settings.json  

Далее этот файл кладем по пути /config/1min и делаем его исполняемым. При этом папка /config должна быть примаунтинина к host системе через изначальное создание контейнера (т.е. это папка конфигов transmission вне контейнера) - это позволит не обновляться ей при каждом перезапуске контейнера.

Далее через Portainer подключаемся внутрь контейнера и добавляем правило Cron 

crontab -e

Далее нажимае i и вставляем строку 

*       *       *       *       *       run-parts /config/1min

Нажимаем Esc и :wq

Это создаст новое правило Cron - каждую минуту будут выполняться скрипты из папки 1min, в которой лежит наш скрипт unmask.sh

Теперь пробуем перезапустить контейнер и проверяем через пару минут, что в файле settings.json сменился UMASK 002 на UMASK 000