Как установить системный umask?
Я работаю в лаборатории, где у нас работает Linux (Debian и Ubuntu). Имена пользователей и имена групп обрабатываются NIS и yp. У нас есть несколько общих пользователей, к которым у всех есть доступ, которые проводят эксперименты, а затем у каждого из нас есть свои собственные пользователи, кроме того, есть общая группа, членом которой мы все являемся.
Как сделать так, чтобы все файлы и каталоги на общих /home/
диск (NFS) для чтения / записи (/ исполняемый) пользователем / группой? В основном то, что я хочу, это
chmod -R 664 /home
chgrp -R commongroup /home
или эквивалентно umask 0002
,
Но выполнение вышеуказанных команд только исправляет текущие файлы в папках, и umask работает только для отдельных пользователей и должен запускаться каждый раз, когда пользователь входит в систему, т.е. в .bashrc
файл (и будет ли это работать для режима изменений через gnome?). Существует ли общесистемная команда или настройка, которую я мог бы использовать, чтобы убедиться, что наша общая группа имеет доступ на запись к общим файлам?
4 ответа
И Debian, и Ubuntu поставляются с 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
, (Если есть, просто удалите их.)
Во-первых, убедитесь, что pam-modules
пакет установлен. Это делает pam_umask
модуль доступен. Затем убедитесь, что /etc/pam.d/common-session
имеет линию вида
session optional pam_umask.so
чтобы pam_umask
включен.
Теперь, согласно pam_umask
Страница man, umask по умолчанию определяется при входе в систему, проверяя каждое из следующих мест по порядку:
Жесткая общесистемная настройка по умолчанию в
/etc/pam.d/common-session
, Чтобы установить это таким образом, замените строку из упомянутого выше файла следующим:session optional pam_umask.so umask=002
Запись в поле GECOS отдельного пользователя в
/etc/passwd
переопределяет мягкое общесистемное значение по умолчанию для этого конкретного пользователя. Создайте эту запись, используя команду вида:chfn --other='umask=002' username
Линия формы
UMASK=002
в/etc/default/login
(вам может понадобиться создать этот файл) устанавливает мягкое общесистемное значение по умолчанию.UMASK
значение от/etc/login.defs
, Это значение также используется для чего-то другого (вычисление разрешений для домашнего каталога нового создаваемого пользователя; см. Комментарии в/etc/login.defs
Больше подробностей). Поэтому лучше избегать полагаться на это для установки umask по умолчанию для регулярных входов в систему, чтобы держать вещи отдельно.
Так что в вашем случае вы должны настроить это либо в /etc/default/login
если вы хотите, чтобы была возможность переопределить настройку для отдельных пользователей или установить ее в /etc/pam.d/common-session
как описано выше, если вы хотите, чтобы он был одинаковым для всех пользователей.
Обратите внимание, что даже с жесткой настройкой по умолчанию пользователи могут переопределить настройку по умолчанию umask
вручную с помощью umask
команда в командной строке или в их .profile
скрипт.
Также обратите внимание, что традиционный Unix способ установить это по умолчанию, добавив umask
командовать /etc/profile
и это также будет работать. Но это не рекомендуемый способ настройки подобных вещей в Ubuntu, потому что с ним сложно надежно управлять, используя скрипты и GUI.
Обратите внимание, к сожалению, это перестало работать для любого приложения, которое было преобразовано для запуска черезsystemd --user
,
Чтобы сопоставить права группы, на сервере установленный бит gid (один из "закрепленных битов") может рассматриваться как дополнительная опция.
Если общий каталог связан с группой, запуск (используя root):chmod -R 2775 folder_for_the_group может быть интересным.
Для любого нового файла, созданного в папке, создатель будет владельцем, но группа будет указана автоматически (если создатель является частью группы).
Сетка прав теперь отображается как -rwxrwsr-x+
Не знаю как в других дистрибутивах, но если вы используете Debian или Ubuntu, запустите
sudo sh -c " echo 'umask 027' > /etc/profile.d/umask.sh"
Изменять
027
до значения, которое лучше всего подходит вам.
Теперь перезагрузите вашу машину.
вуаля!!! Вы сделали.
Для получения более подробной информации, пожалуйста, проверьте Сходить с ума по umask в Ubuntu!!!!!!. Суть в том, что, поскольку мы хотим сохранить поведение useradd и userdel — и, вероятно, нам нужны системные значения по умолчанию для других учетных записей — исправление состоит в том, чтобы раскомментировать строку umask в , затем выйти из системы и снова войти в нее.
Однако,
~/.profile
предназначен для конкретного пользователя. Для изменения всей системы вам необходимо создать файл под
/etc/profile.d/
или добавить
umask 027
к
/etc/profile
.