У меня есть серверный процесс http-демона (yaws), который я хотел бы, чтобы сервер записывал любые новые файлы с umask 002, чтобы другой пользователь из той же группы мог изменять, перемещать или удалять файлы, созданные процессом-демоном. Это на Ubuntu 10.04.
В отличие от Apache, в yaws нет опции конфигурации для umask, так какие есть способы для установки umask для любого процесса демона?
Я нашел этот ответ об изменении сценария инициализации, чтобы добавить umask 002
. Это сработало, но я не уверен, что редактирование сценария инициализации - лучший способ упростить документирование и настройку на нескольких машинах.
Я также нашел ссылку на модуль pam_umask здесь . Похоже, это позволяет настраивать пользовательские настройки umask в поле GECOS / etc / passwd.
Есть ли другие способы установить umask для процессов-демонов? И какой будет рекомендуемый путь?
sudo
для чтения/etc/passwd
. Илиcat
в этом отношении (grep
примет имя файла в качестве аргумента или просто использует,getent
как указала Джанн).sudo -u daemon bash -c umask
. Я проверил неинтерактивность, изменив настройки и перезапустив демон и посмотрев разрешения для создаваемых им файлов.dash
, ноumask
должен работать в нем.В Ubuntu 10.04 глобальными настройками umask по умолчанию можно управлять с помощью модуля pam_umask.
В этом блоге были найдены некоторые подробности, связанные с Debian в целом: http://muzso.hu/2008/01/22/default-permissions-with-libpam-umask
Модуль pam_umask по умолчанию устанавливается в Ubuntu 10.04, но его необходимо настроить.
Отредактируйте /etc/pam.d/common-session, добавив строку:
Затем настройки для каждого пользователя могут быть изменены с помощью команды:
добавить настройку umask в поле GECOS в / etc / passwd.
Это работает только для неинтерактивных оболочек без входа в систему, например, когда сценарий запуска демона запускается при загрузке.
Для оболочек входа в систему параметры umask необходимо удалить из других файлов конфигурации оболочки, таких как / etc / profile, /etc/login.defs или из домашнего каталога пользователей .profile, .bashrc и т. Д. В противном случае параметры pam_umask будут переопределены. Смотрите man-страницу pam_umask для порядка конфигурации.
источник
Если служба запускается с помощью инструмента «start-stop-daemon», umask можно указать на уровне командной строки с параметром «--umask», например:
Настройка сценария запуска для чтения таких подробностей из файла конфигурации может быть более прозрачной, чем добавление пользовательских настроек - это, конечно, зависит от процедуры запуска, используемой для демона.
Дополнительную информацию можно получить на man-Page: man start-stop-daemon
источник