Tenho um serviço systemd que executa um loop para verificar se um compartilhamento smb está disponível e o monta quando estiver. Isso funciona bem para um compartilhamento, mas não para outro.
Depois de esperar que o compartilhamento fique acessível (usando nc
), o serviço systemd executa este comando como root
mount -t cifs //192.168.122.49/pool/ /mnt/pool -o credentials=/etc/nixos/credentials,uid=1000,gid=100,vers=3.1.1,rw
e falha com failed: Permission denied
. O Systemd me dizstatus=255/EXCEPTION
Reiniciar o serviço systemd sempre resulta neste erro. Se eu executar este comando sozinho, sudo mount ...
tudo funciona. Tenho outro serviço que funciona exatamente assim e este funciona muito bem sem executar o comando manualmente.
Como pode ocorrer tal diferença? É porque o serviço systemd não consegue ler o arquivo de credenciais? Ele é de propriedade do root e tem permissões-rw-------
Bem, eu mudei o script para
systemctl restart mnt-pool.mount
e isso funciona. Realmente parece que o script dentro do serviço systemd não conseguiu acessar o arquivo de credenciais e então falhou ao fazer login. Estranho