Как изменить разрешения по умолчанию для файлов, созданных передачей-демоном?

25

У меня есть машина, на которой работает сервер Ubuntu 12.04 с демоном передачи, работающим для обработки биторентов. Все работает нормально, кроме демона передачи, создающего файлы как пользователь / группа debian-transmission, и с 744 правами доступа к файлам.

  • Я хотел бы иметь возможность удалять и перемещать эти файлы из общей папки samba.

  • Я подумывал об изменении основной группы пользователя debian-translation, но я волновался, что это может испортить доступ к другим файлам.

  • Я подумал, что было бы лучше изменить разрешение по умолчанию для новых файлов, созданных debian-translation на 774, и добавить себя в группу debian-translation.

    Я знаю, что это можно сделать с помощью umask, но я понимаю, что это будет установлено в файле .profile, и поскольку у debian-transmission нет домашней папки, я не уверен, существует ли этот файл для пользователя. Так как мне это сделать?

    Предложения или альтернативные решения приветствуются. Заранее спасибо.

jpetersen
источник
Сделал это на Crystalubuntu, теперь я получаю сообщение об ошибке при запуске передачи - «невозможно установить gid на 113 (операция не разрешена)». Есть идеи?
Я закончил следующим: запись в crontab <pre> #! / Bin / sh trap "" 1 logfile = / dev / null exec> $ logfile 2> & 1 set -x while true; do a = "$ (inotifywait -q -r -e переместить -e создать -e delete / data / completedownloads / Movies --format% w% f)" chown -R nobody: никто "$ a" не сделал </ pre>

Ответы:

46

Вы можете указать umask в конфигурационном файле передачи ( /etc/transmission-daemon/settings.json). Umask мы обычно представляем в восьмеричном виде, но, к сожалению, json не поддерживает это, поэтому мы должны преобразовать его в основание 10. Вы можете сделать это в оболочке следующим образом:

$ echo $(( 8#022 ))
18

Это значение по умолчанию, но вы, вероятно, хотите 002, то же самое в десятичной, так

sudo editor /etc/transmission-daemon/settings.json
# change "umask": 18 to "umask": 2 and save
sudo reload transmission-daemon # tells transmission-daemon to re-read the config 
                                # file. This is important, otherwise, the changes
                                # will be lost

Еще одна вещь. Если вы измените принадлежность группы к загрузочному каталогу и добавите в нее бит setgid, все файлы, созданные в этом каталоге, будут иметь такое же владение группой, что и этот каталог.

sudo chgrp "$USER" /path/to/transmission/download/dir
sudo chmod g+s /path/to/transmission/download/dir

Это не повлияет на файлы, которые уже существуют. Смотрите http://mywiki.wooledge.org/Permissions для получения дополнительной информации.

geirha
источник
Именно то, что мне было нужно. Спасибо, что включили информацию о битах setgid, я забыл об этих дополнительных битах.
jpetersen
Я думаю, что я делаю что-то не так. Я хочу установить права доступа, например, chmod 775, поэтому я попытался с помощью этой команды echo $ ((8 # 775)) и получил 509, но, похоже, это просто сломало демона передачи, поскольку он больше не будет загружать торрент-файлы.
Фран Марзоа
3
@Fran Если вы установите значение umask на 0775, тогда файлы получат режим 002; Маска указывает, какие биты НЕ устанавливать в новых файлах. Здесь вам нужен umask по умолчанию (002), чтобы файлы создавались в режиме 664, а каталоги - в режиме 775.
geirha
Ой! Я уже понял, что должен поставить 002, но я не знал почему! Спасибо миллион за разъяснения! :)
Fran Marzoa
Это было то, chmod g+sчего мне не хватало. Благодарность!
flith
0

Попробуй это:

mkdir /your_path/progress
mkdir /your_path/completed
sudo usermod -a -G debian-transmission your_user
chgrp debian-transmission /your_path/progress
chgrp debian-transmission /your_path/completed
chmod 770 /your_path/progress
chmod 770 /your_path/completed
sudo service transmission-daemon stop
sudo adduser your_user debian-transmission
sudo nano /etc/init.d/transmission-daemon
sudo chown your_user -R /var/lib/transmission-daemon/info/
sudo chown your_user -R /your_path/progress
sudo chown your_user -R /your_path/completed
sudo chown your_user -R /etc/transmission-daemon/settings.json

И изменить в файле: sudo nano /etc/transmission-daemon/settings.json

"rpc-whitelist": "127.0.0.1" > "rpc-whitelist": "*.*.*.*",
"rpc-password": "password" > "rpc-password": "your_password",
"download-dir": "/var/lib/transmission-daemon/downloads" > "download-dir": "/your_path/completed"
"incomplete-dir": "/var/lib/transmission-daemon/downloads" > "incomplete-dir": "/your_path/progress"

Просто перезапустите демон:

service transmission-daemon start
Costales
источник