Como alterar as permissões padrão dos arquivos criados pelo daemon de transmissão?

24

Eu tenho uma máquina executando o servidor Ubuntu 12.04 com o daemon de transmissão em execução para lidar com bitorrents. Tudo funciona bem, exceto o daemon de transmissão cria arquivos como usuário / grupo debian-transmissione com 744 permissões de arquivo.

  • Eu gostaria de poder excluir e mover esses arquivos de um compartilhamento de samba.

  • Eu considerei mudar o grupo principal do usuário debian-transmission, mas estava preocupado que pudesse atrapalhar o acesso a outros arquivos.

  • Eu pensei que seria melhor mudar a permissão padrão de novos arquivos criados pelo debian-broadcast para 774 e me adicionar ao grupo debian-broadcast.

    Eu sei que isso pode ser feito com umask, mas meu entendimento é que isso seria definido no arquivo .profile e como o debian-transmission não possui uma pasta inicial, não tenho certeza se esse arquivo existia para o usuário. Então, como eu faço isso?

    Sugestões ou soluções alternativas são bem-vindas. Desde já, obrigado.

jpetersen
fonte
Fiz isso no Crystalubuntu, agora recebo um erro ao iniciar a transmissão - "não é possível definir o gid como 113 (operação não permitida)". Qualquer ideia?
Eu terminei com a seguinte entrada crontab <pre> #! / Bin / sh trap "" 1 arquivo de log = / dev / null exec> $ arquivo de log 2> & 1 set -x while true; fazer a = "$ (inotifywait -q -r -e mover -e criar -e excluir / dados / downloads concluídos / Filmes - formato% w% f)" chown -R ninguém: ninguém "$ a" fez </pre>

Respostas:

45

Você pode especificar uma umask no arquivo de configuração da transmissão ( /etc/transmission-daemon/settings.json). Umask que normalmente representamos em octal, mas infelizmente o json não suporta isso, então temos que convertê-lo para a base 10. Você pode fazer isso no shell assim:

$ echo $(( 8#022 ))
18

Esse é o padrão, mas você provavelmente deseja 002, que é o mesmo em decimal, então

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

Outra coisa. Se você alterar a propriedade do grupo do diretório de download e adicionar o bit setgid, todos os arquivos criados nesse diretório terão a mesma propriedade do grupo.

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

Isso não afetará os arquivos que já existem. Veja http://mywiki.wooledge.org/Permissions para mais informações.

Geirha
fonte
Exatamente o que eu precisava. Obrigado por incluir as informações do bit setgid, eu esqueci esses bits extras.
jpetersen
Eu acho que estou fazendo algo errado. Eu quero definir permissões como chmod 775, então tentei com o comando echo $ ((8 # 775)) e obtive 509, mas parece que isso acabou de quebrar o daemon de transmissão, pois não fará mais downloads de arquivos torrent.
Fran Marzoa
3
@Fran Se você definir o umask como 0775, os arquivos obterão o modo 002; A máscara especifica quais bits NÃO devem ser definidos em novos arquivos. Você quer que a umask padrão (002) aqui, de modo que os arquivos são criados com o modo de 664, e diretórios com o modo 775.
geirha
Oh! Eu já percebi que tenho que colocar 002, mas não sabia o porquê! Agradecemos um milhão pelo esclarecimento! :)
Fran Marzoa
Era o chmod g+sque eu estava perdendo. Obrigado!
Flith
0

Tente o seguinte:

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

E mude no arquivo: 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"

Basta reiniciar o daemon:

service transmission-daemon start
Costales
fonte