Executando o OpenOffice como um serviço Daemontools que não atende o usuário

2

Meu problema é que, quando iniciado com o Daemontools, os arquivos criados pelo OpenOffice (que é executado no modo de servidor) são de propriedade do root (e no grupo raiz). Quando eu inicio o script 'run' do Daemontools manualmente, o OpenOffice cria corretamente o arquivo com as permissões que eu quero (ou seja, o grupo 'oinstall' neste caso).

Eu tenho um usuário unix chamado 'oracle' que é membro de um grupo 'oinstall'. O usuário oracle pode iniciar / parar o servidor OpenOffice, que é controlado por um serviço Daemontools. As permissões no serviço são assim:

[oracle@try1 pdf]$ ls -l /service/
drwxrwsr-x 3 root oinstall 4096 Dec  3  2012 OpenOfficePROD

[oracle@try1 pdf]$ ls -l /service/OpenOfficePROD/
-r--rws--- 1 root oinstall  175 Dec  3  2012 run
drwxrws--- 2 root oinstall 4096 Sep  2 15:31 supervise

[oracle@try1 pdf]$ ls -l /service/OpenOfficePROD/supervise/
prw-rws--- 1 root oinstall  0 Sep  2 15:31 control
-rw-rws--- 1 root oinstall  0 Sep  4  2012 lock
prw-rws--- 1 root oinstall  0 Sep  4  2012 ok
-rw-r--r-- 1 root oinstall 18 Sep  2 15:31 status

Quando inicio manualmente o servidor do OpenOffice, executando o script 'run' como o usuário do oracle, recebo arquivos gerados com as permissões desejadas, por exemplo,

-rw-r----- 1 oracle oinstall 20956 Sep 2 15:48 myfile.pdf

Mas quando eu uso daemontools para iniciar o servidor do OpenOffice (mesmo como o usuário do Oracle), os arquivos são criados assim:

-rw-r----- 1 root root 20956 Sep 2 15:28 myfile.pdf

Aqui está o meu script de execução:

#!/bin/sh


exec 2>&1
export HOME=/home/oracle
exec /usr/bin/soffice -invisible -nologo -headless -nofirststartwizard -accept="socket,port=8099;urp;StarOffice.ServiceManager"
    
por TrojanName 02.09.2016 / 17:00

1 resposta

2

Você pode usar setuidgid no script /service/OpenOfficePROD/run para que os daemontools iniciem o serviço como o usuário correto.

#!/bin/sh
exec 2>&1
export HOME=/home/oracle
exec setuidgid oracle /usr/bin/soffice -invisible -nologo -headless -nofirststartwizard -accept="socket,port=8099;urp;StarOffice.ServiceManager
    
por 02.09.2016 / 17:06