Как установить umask для системного пользователя?

Можно ли установить umask для системного пользователя (созданного с помощью useradd --system username )?

3 Solutions collect form web for “Как установить umask для системного пользователя?”

Существует три обычных способа установки umask пользователя.

  1. Установите UMASK в /etc/login.defs
  2. Добавьте pam_umask.so в свою конфигурацию PAM в /etc/pam.d
  3. Установите его в файлы запуска оболочки, например /etc/profile

В этом отношении нет разницы между пользователями системы и обычными пользователями.

Но я предполагаю, что вы пытаетесь запустить демона с помощью специальной umask?

Проблема заключается в следующем: все перечисленные выше параметры выполняются при входе пользователя в систему. Если вы используете демона, он никогда не войдет в систему. Он запускается с помощью init, затем выполняется либо как root, либо вызывает setuid для запуска в качестве системного пользователя, которого вы указывать.

Ваши основные параметры:

  1. поместите umask в свой скрипт init (например, для примера используйте grep umask /etc/init.d/* )
  2. настройте init, чтобы запустить программу с помощью специального umask ( systemd.exec upstart umask )
  3. если вы используете start-stop-daemon , передайте опцию umask
  4. изменить сама программа, чтобы вызвать функцию umask или системный вызов

Пользователи системы отличаются от «нормальных» тремя способами: истечением срока действия пароля, домашним каталогом (у пользователей системы их нет), а UID (пользователи системы обычно ниже некоторого произвольного порога).

В общем случае вам почти не повезло. Вы можете использовать PAM для установки umask, но PAM выбирает поведение, основанное на вещах, отличных от этих трех различий.

Другими словами, вы не можете получать PAM, чтобы различать пользователей «системы» и «несистема». Это дает вам два варианта:

  • Либо вы используете PAM для установки umask для всех (например, check in /etc/login.defs ), а затем явно задайте umask для несистемных пользователей в /etc/bash.bashrc (или аналогичном);

  • Или вы пишете свой собственный модуль PAM для этого. Я думаю, что это будет приветствоваться многими людьми, поскольку установка umask является распространенным запросом.

Пожалуйста, возьмите этот ответ с щедрым щепоткой соли. Этот вид запроса довольно распространен, и я не удивлюсь, если теперь будет лучший / правильный способ.

Как предлагает @Mikel, если вы пытаетесь настроить системную учетную запись, которая является демоном, попробуйте настроить сам демон.

Я пришел к этому вопросу, глядя, как установить umask для учетной записи _www на MacOS. Хотя это трудно, как показывают вышеприведенные ответы, я обнаружил, что могу решить эту проблему, настроив службу apache как (в данном случае) пользователя == daemon.

Я странно не смог найти сценарий запуска (обычно в /etc/init.d/, но на Mac в библиотеке / LaunchDaemons /), но с помощью: http://krypted.com/mac-security/apache2-umasks / обнаружил, что apache имеет свой собственный сценарий среды.

 $ sudo vim /usr/sbin/envvars umask 002 

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

  • Почему sudo говорит мне, что мой пароль неправильный?
  • Использование хэшированного пароля для функции adduser в Linux
  • Добавление нескольких учетных записей пользователей в разные первичные / вторичные группы
  • Предоставить права на создание / управление пользователями
  • Linux Создать пользователя со специальными параметрами входа в систему
  • Безопасное предоставление пользователям возможности создавать учетные записи
  • какая команда даст полное создание пользователя в RHEL?
  • Настройка пользователя для программы
  • Useradd без домашней директории
  • Поиск сценария, который может цитировать ssh в список ips и выполнять useradd, домашний каталог, создание и пользователя в файл sudoers
  • AT & T UNIX System V Release 4 - Как создать нового пользователя «Администратор»?
  • Linux и Unix - лучшая ОС в мире.