Вопрос по linux – Как установить системный umask?

62

Я работаю в лаборатории, где у нас работает Linux (Debian и Ubuntu). Имена пользователей и имена групп обрабатываются NIS и yp. У нас есть несколько общих пользователей, к которым у всех есть доступ, которые проводят эксперименты, а затем у каждого из нас есть свои собственные пользователи, кроме того, есть общая группа, членом которой мы являемся.

Как сделать так, чтобы все файлы и каталоги на общих/home/ диск (NFS) для чтения / записи (/ исполняемый) пользователя / группы? В основном то, что я хочу, это

chmod -R 664 /home
chgrp -R commongroup /home

или эквивалентноumask 0002.

Но выполнение вышеуказанных команд только исправляет текущие файлы в папках, и umask работает только для отдельных пользователей и должен запускаться каждый раз, когда пользователь входит в систему, т.е. в.bashrc файл (и будет ли это работать для режима изменений через gnome?). Существует ли общесистемная команда или настройка, которую я мог бы использовать, чтобы убедиться, что наша общая группа имеет доступ на запись к общим файлам?

Продолжение комментария tMC: Если вы хотите это для определенных директорий (и необязательно субдиректорий) и не привязывать его ко всем (!) Файлам и директориям, принадлежащим конкретному пользователю, используйте ACL. Здесь & APOS; sa good answer на похожий вопрос cfi
Ты сделаешьnot хочуchmod -R 644 /home: это удаляет бит eXecute из каталогов, что делает их недоступными для поиска. ephemient
я верю, что вы можете использоватьsetfacl рекурсивно устанавливать (и поддерживать) настройки доступа к директории.linuxcommand.org/man_pages/setfacl1.html tMC

Ваш Ответ

3   ответа
0

на сервере установленный бит gid (один из «закрепленных битов») может рассматриваться как дополнительная опция.

Если общий каталог связан сgroup, запустив (используя root): chmod -R 2775 folder_for_the_group  может быть интересно

Для любого нового файла, созданного в папке, создатель будет владельцем, но группа будет указана автоматически (если создатель является частью группы).

Права и APOS; сетка теперь выглядит как -rwxrwsr-x +

95

pam_umask, Это позволяет настроить Umask в/etc/login.defs и пусть они применяются в масштабе всей системы, независимо от того, как пользователь входит в систему.

Чтобы включить его, вам может понадобиться добавить строку/etc/pam.d/common-session чтение

session optional pam_umask.so

или он уже может быть включен. Затем отредактируйте/etc/login.defs и изменитьUMASK линия к

UMASK           002

(по умолчанию022).

Обратите внимание, что пользователи могут по-прежнему переопределять Umask в своих собственных~/.profile или же~/.bashrc или аналогичный, но (по крайней мере, в новых установках Debian и Ubuntu) не должно быть никакого переопределения umask в/etc/profile или же/etc/bash.bashrc, (Если есть, просто удалите их.)

Error: User Rate Limit Exceeded
Error: User Rate Limit ExceedednotError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded~/.profile
Error: User Rate Limit Exceeded
23

Во-первых, убедитесь, чтоpam-modules пакет установлен. Это делаетpam_umask модуль доступен. Затем убедитесь, что/etc/pam.d/common-session имеет линию вида

session optional pam_umask.so

чтобыpam_umask включен.

Теперь, согласноpam_umask Страница man, umask по умолчанию определяется при входе в систему, проверяя каждое из следующих мест по порядку:

A hard system-wide default set in /etc/pam.d/common-session. To set it this way, replace the line from that file mentioned above with this:

session optional pam_umask.so umask=002

An entry in an individual user's GECOS field in /etc/passwd overrides a soft system-wide default for that specific user. Create that entry using a command of the form:

chfn --other='umask=002' username

An line of the form UMASK=002 in /etc/default/login (you may need to create that file) sets a soft system-wide default.

The UMASK value from /etc/login.defs. That value is also used for something else (computing the permissions on the home directory of a new user that is being created; see the comments in /etc/login.defs for more details). So it is best to avoid relying on this for setting the default umask for regular logins, to keep things separate.

Так что в вашем случае вы должны настроить это либо в/etc/default/login если вы хотите, чтобы была возможность переопределить настройку для отдельных пользователей или установить ее в/etc/pam.d/common-session как описано выше, если вы хотите, чтобы он был одинаковым для всех пользователей.

Обратите внимание, что даже с жесткой настройкой по умолчанию пользователи могут переопределить настройку по умолчанию.umask вручную с помощьюumask команда в командной строке или в их.profile скрипт.

Также обратите внимание, что традиционный Unix способ установить это по умолчанию, добавивumask командовать/etc/profileи это также будет работать. Но это не рекомендуемый способ настройки подобных вещей в Ubuntu, потому что с этим сложно надежно управлять, используя скрипты и GUI.

Обратите внимание, к сожалению этоперестал работать для любого приложения, которое было преобразовано для запуска черезsystemd --user.

/etc/defaultsError: User Rate Limit Exceeded/etc/default/login?
Error: User Rate Limit ExceededUSERGROUPS_ENABError: User Rate Limit Exceeded022Error: User Rate Limit Exceeded002Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededlibpam-modulesError: User Rate Limit Exceededpam_umaskError: User Rate Limit Exceededdpkg-query --search /lib/x86_64-linux-gnu/security/pam_umask.soError: User Rate Limit Exceededlibpam-modules:amd64: /lib/x86_64-linux-gnu/security/pam_umask.so.)
Error: User Rate Limit Exceeded

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