Запуск OpenOffice в качестве службы Daemontools, не захватывающий пользователя

Моя проблема в том, что при запуске с помощью Daemontools файлы, созданные OpenOffice (который работает в режиме сервера), принадлежат пользователю root (и в корневой группе). Когда я запускаю сценарий запуска Daemontools вручную, OpenOffice правильно создает файл с нужными мне разрешениями (в данном случае группа «oinstall»).

У меня есть пользователь unix по имени «oracle», который является членом группы «oinstall». Пользователь oracle может запускать / останавливать сервер OpenOffice, которым управляет служба Daemontools. Разрешения для службы выглядят следующим образом:

[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

Когда я вручную запускаю сервер OpenOffice, запустив сценарий 'run' от имени пользователя oracle, я получаю файлы, созданные с нужными разрешениями, например

-rw-r --- - 1 oracle oinstall 20956 2 сентября 15:48 myfile.pdf

Но когда я использую daemontools для запуска сервера OpenOffice (даже как пользователь Oracle), файлы создаются следующим образом:

-rw-r- ---- 1 root root 20956 2 сентября 15:28 myfile.pdf

Вот мой сценарий запуска:

#!/bin/sh


exec 2>&1
export HOME=/home/oracle
exec /usr/bin/soffice -invisible -nologo -headless -nofirststartwizard -accept="socket,port=8099;urp;StarOffice.ServiceManager"
2
задан 2 September 2016 в 18:00
1 ответ

Вы могли хотите использовать setuidgid в сценарии / service / OpenOfficePROD / run , чтобы daemontools запускал вашу службу как правильный пользователь.

#!/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
2
ответ дан 3 December 2019 в 11:31

Теги

Похожие вопросы