transmission.service permissões de pasta alteradas a cada inicialização

0

Estou executando archlinux e uso o systemd transmission.service para baixar torrents. Eu tenho uma partição de disco rígido ext4 montada automaticamente com fstab on /var/lib/transmission . Eu guardo todos os downloads completos e compartilho esse diretório com um servidor samba na rede local.

O problema é que toda vez que o computador inicializa, vejo que /var/lib/transmission não tem permissões de leitura para todos. Isso significa que o servidor samba não pode ler o caminho completo para esse diretório e, por fim, não consigo acessar os arquivos com um cliente samba. Após a inicialização, posso executar sudo chmod a+rX /var/lib/transmission e somente depois o diretório está acessível. Parece que transmission reescreve as permissões drwxr-x--- a cada inicialização.

Existe uma maneira elegante de editar alguns arquivos systemd e corrigi-los? Talvez usando sudo systemctl edit transmission.service ?

    
por Doron Behar 24.10.2016 / 19:39

1 resposta

3

A solução está adicionando a /etc/systemd/system/multi-user.target.wants/transmission.service o seguinte ou usando sudo systemctl edit transmission.service e escreve:

[Service]
ExecStartPost=/bin/chmod a+rX /var/lib/transmission

systemctl edit abre um editor de texto para você substituir as entradas do arquivo de serviço original e não alterar o arquivo original fornecido pelo gerenciador de pacotes.

Depois de adicioná-los, Reinicie e problema corrigido.

Note: It might be more pragmatic to use systemctl edit because I guess this command was created so you won't edit the original service files provided by the package manager.

Note: You'll might need to adjust the path to the chmod executable according to your distribution paths.

Editar:

Muito parecido com diretórios em /var/run , descobri por que o systemd está certificando-se de que todas as inicializações que esse diretório tenha essas permissões sejam explicadas originalmente aqui: link

citando:

With systemd, there is a new functionality called tmpfiles.d(5) that can be used to create files or directories on boot outside of the .service file. Openvpn and ejabberd are both using this, so that's why the directories in /var/run are still created even if they are not started on boot.

The tmpfiles configuration files are stored in /usr/lib/tmpfiles.d/

De qualquer forma, outra maneira de resolver esse problema é editar o número da umask em /usr/lib/tmpfiles.d/transmission.conf para algo assim:

d /var/lib/transmission 0755 transmission transmission
    
por 24.10.2016 / 20:04