0

In our product, we had created services using daemontools. One of my service looks like this,

/service/test/run
/service/test/log/run (has multilog command to log into ./main dir)
/service/test/log/main/..

All the process and its directories are owned by root user. Now there is a security requirement to change like this,

  1. Service should run in non-root user.
  2. Log main directory should be readable only to user and groups.

For this, I have to change the 'run' file under 'log' directory. Also I need to change the permissions of 'main' directory under it.

Note that all these files under '/service' were owned by test-1.0-0.rpm. When I update my rpm, it overrides the existing run file and got error like this,

multilog: fatal: unable to lock directory ./main: access denied

I know we shouldn't override the 'run' file at run time. I have planned to follow these steps in my rpm script %post section,

//Stop service
svc -d /service/test/log

//Moving the main directory
mv /service/test/log/main /service/test/log/main_old

//Updated run file has code to create main with limited permissions.

//Start service
svc -u /service/test/log

In some articles, they suggested to recreate the 'lock' file under 'log/main'. Is there any other cleaner way of doing this without moving 'main' directory ? If not, is it safe to go with the above steps ?

Prabu
  • 1,225
  • 4
  • 18
  • 26

0 Answers0