Как установить системную ширину umask?
Я работаю в лаборатории, где мы работаем под управлением Linux (Debian и Ubuntu). Имена пользователей и имена групп обрабатываются NIS и yp. У нас есть некоторые общие пользователи, у всех есть доступ к этим запускам экспериментов, и тогда у каждого из нас есть свои собственные пользователи, кроме того, есть общая группа, в которой мы все являемся.
Как я могу сделать так, чтобы все файлы и каталоги на общем диске /home/
(NFS) были прочитаны/записаны (/выполнимы) пользователем/группой? В принципе, я хочу
chmod -R 664 /home
chgrp -R commongroup /home
или эквивалентно umask 0002
.
Но выполнение приведенных выше команд только фиксирует текущие файлы в папках, а umask работает только для одиночных пользователей и должен запускаться каждый раз, когда пользователь регистрируется в ie. в файле .bashrc
(и будет ли это работать в режиме изменений через gnome?). Есть ли системная команда или настройки, которые я мог бы использовать, чтобы убедиться, что наша коммонгруппа имеет доступ на запись к общим файлам?
Ответы
Ответ 1
Оба корабля 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
. (Если есть, просто удалите их.)
Ответ 2
Сначала убедитесь, что установлен пакет 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/defaults/login
(возможно, вам потребуется создать этот файл) устанавливает мягкое системное значение по умолчанию.
-
Значение UMASK
из /etc/login.defs
. Это значение также используется для чего-то еще (вычисления разрешений в домашнем каталоге нового пользователя, который создается, более подробно см. Комментарии в /etc/login.defs
). Поэтому лучше не полагаться на это для установки стандартного umask по умолчанию для регулярных логинов, чтобы все было в порядке.
Итак, в вашем случае вы должны настроить это либо в /etc/defaults/login
, если хотите, чтобы можно было переопределить параметр для отдельных пользователей или установить его в /etc/pam.d/common-session
, как описано выше, если вы хотите, чтобы он был таким же для всех пользователей.
Обратите внимание, что даже при жестком настройке по умолчанию пользователи все равно могут переопределить по умолчанию UMASK
вручную, используя команду UMASK
в командной строке или в .profile
script.
Также обратите внимание, что традиционным способом Unix по умолчанию является добавление команды UMASK
в /etc/profile
, и это также будет работать. Но это не рекомендуемый способ настроить такие вещи на Ubuntu, потому что это трудно управлять надежным использованием скриптов и графических интерфейсов.
Ответ 3
Чтобы соответствовать правам группы, на сервере установленный бит gid (один из "липких битов" ) можно рассматривать как дополнительную опцию.
Если общий каталог связан с группой, запуск (с использованием root):
chmod -R 2775 folder_for_the_group может быть интересным.
Для любого нового файла, созданного в папке, создателем будет владелец, но группа будет автоматически указана (пока создатель является частью группы).
сетка "p > Правка" теперь отображается как -rwxrwsr-x +