Назад | Перейти на главную страницу

Какие разрешения необходимы для записи файла PID в / var / run?

В Ubuntu:

touch: cannot touch `/var/run/test.pid': Permission denied

Я запускаю start-stop-daemon и хочу записать файл PID в / var / run start-stop-daemon запускается от имени my-program-user

/var/run setting is drwxr-xr-x  9 root  root

Мне нравится избегать включения my-program-user в корневую группу.

По умолчанию вы можете писать в / var / run только как пользователь с эффективным идентификатором пользователя 0 (то есть как root). На это есть веские причины, поэтому, что бы вы ни делали, не переходите и не изменяйте разрешения / var / run ... Вместо этого, как root, создайте каталог под / var / run:

# mkdir /var/run/mydaemon

Затем измените его владельца на пользователя / группу, под которой вы хотите запустить свой процесс:

# chown myuser:myuser /var/run/mydaemon

Теперь укажите использовать / var / run / mydaemon, а не / var / run.

Вы всегда можете проверить это, запустив тест от имени рассматриваемого пользователя.

mkdir /var/run/mydaemon
chown myuser:myuser /var/run/mydaemon

это не сработает, так как оно будет потеряно при следующей перезагрузке (/var/run это tmpfs в Ubuntu).

Единственное возможное решение - запустить mkdir и chmod как часть сценариев запуска.

Вы можете попробовать это. Создайте каталог / var / run / test /, а затем измените разрешение этого каталога тому же пользователю, что и ваша программа. "chown / var / run / test /". Теперь в вашем приложении измените расположение файла PID на /var/run/test/test.pid. Это должно заставить вас работать.

А как насчет использования «липкого» бита в / var / run?

chmod + t / var / run?

Возможно, испортили какие-то другие приложения, но, похоже, это было бы другое решение.

Однако я пока буду создавать отдельную папку / var / run.

Записи в /etc/permissions постоянны. Сделайте там запись, чтобы сделать права собственности и разрешения на каталог постоянными.

Чтобы не помещать вашу программу-пользователя в корневую группу, разрешите другим доступ на запись:

# chmod 757