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

Под Debian, если Вы хотите изменить менеджер окон для всех пользователей, можно работать (как корень):

update-alternatives --config x-window-manager

и выберите менеджер окон, который Вы хотите как значение по умолчанию. Однако это могло бы только работать, если Вы не используете настольную среду (например, GNOME или KDE).

При использовании GNOME можно сказать его, какой менеджер окон Вы хотите, вставляя следующее ~/.gnomerc:

export WINDOW_MANAGER=/usr/bin/mutter
14
11.04.2012, 14:35
3 ответа

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

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

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

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

Проблема: все вышеупомянутые опции происходят, когда пользователь входит в систему. При выполнении демона это никогда не входит в систему. Это запускается init, затем или работает как корень или вызовы setuid для выполнения как пользователь системы, Вы указываете.

Ваши основные опции:

  1. поместить umask в Вашем init сценарии (делают a grep umask /etc/init.d/* для примера)
  2. настройте init для запуска программы с пользовательским umask systemd.execвыскочка umask( )
  3. при использовании start-stop-daemon, передайте umask опцию
  4. измените саму программу для вызова umask вызова функции или системного вызова
14
27.01.2020, 19:51
  • 1
    Вы знаете, как установить umask для SSHFS (sftp-сервер) на Дуге Linux (который использует systemd)? Как Вы указали, первые 3 опции, которые Вы перечислили, не имеют никакого эффекта. –  MountainX-for-Monica 23.09.2017, 05:12

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

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

Другими словами, Вы не можете заставить PAM различать 'систему' и 'несистемных' пользователей. Это оставляет Вас с двумя опциями:

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

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

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

2
27.01.2020, 19:51
  • 1
    Уже существует модуль PAM, названный pam_umask. Проблема, она только работает во время входа в систему. –  Mikel 11.04.2012, 23:48
  • 2
    , я думаю, что Вы знали о pam_umask, но возможно не о pam_succeed_if. С pam_succeed_if можно заставить любой другой модуль применяться только к данному пользователю или группе. Но я все еще не думаю, что PAM поможет здесь. –  Mikel 12.04.2012, 17:43

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

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

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

$ sudo vim /usr/sbin/envvars
    umask 002

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

1
27.01.2020, 19:51

Теги

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