Как настроить общий ресурс NFS для пользователей с правами на запись

2

Мы использовали Ubuntu Linux на настольных компьютерах с аутентификацией ldap. И на сервере, и на клиентах у нас одинаковые пользователи и группы.

Я настроил сервер NFS с общедоступным общим ресурсом, который должен быть доступен для всех пользователей с разрешениями на запись. Например, один пользователь создал файл, другой сможет удалить этот файл по умолчанию.

У меня есть следующие требования:

  1. Я не хочу менять umask по умолчанию (0022) на клиентских машинах.
  2. Я не хочу использовать inotify для прав на изменение, когда файлы изменяются на сервере, потому что это замедляет доступ к сети с помощью общего ресурса nfs и работает нестабильно.

Как воспроизвести:

Я создаю исходную папку с acl по умолчанию со следующими разрешениями для папки каталог принадлежит группе в офисе

$ setfacl -m default:g:inoffice:rwx directory/
$ setfacl -m g:inoffice:rwx directory/
$ getfacl directory/

# file: directory/
# owner: root
# group: root
user::rwx
group::r-x
group:inoffice:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:inoffice:rwx
default:mask::rwx
default:other::r-x

Теоретически: 1. Этот каталог должен быть доступен для записи для пользователей в группе в офисе , 2. Все новые файлы и каталоги наследуются group:inoffice:rwx разрешений

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

user1 with primary group __USERS__ and supplementary group inoffice 
user2 with primary group __USERS__ and supplementary group inoffice 

Предположим, что user1 зашел в папку nfs каталог на собственной машине и созданной папке с именем 'folder_user1'

getfacl folder_user1
# file: folder_user1
# owner: user1
# group: user1_group
user::rwx
group::r-x
group:inoffice:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:inoffice:rwx
default:mask::rwx
default:other::r-x

Затем user2 может удалить эту папку из-за default:group:inoffice:rwx разрешений

Но если user1 скопировать каталог (вместо создания) в каталог , Полученные разрешения будут:

$ getfacl folder_copied_by_user1
# file: folder_copied_by_user1
# owner: user1
# group: user1_group
user::rwx
group::r-x
group:inoffice:rwx      #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:inoffice:rwx
default:mask::rwx
default:other::r-x

Я знаю о разнице в вызовах метода open, когда мы копируем и создаем файлы в linux. Также я знаю о umask, который применяется после операции создания файла.

Я не могу найти решение для обмена файлами в сети с протоколом NFS в моем случае.

Помогите мне найти обходной путь.

vskubriev
источник

Ответы:

0

Я нашел простой обходной путь в этом статья ,

Если мы используем отдельную первичную группу для каждого пользователя, мы можем использовать umask = 002. Тогда права доступа к группе не будут ограничены umask. И мы можем установить разрешения, используя setgid или acl.

Но предлагаемое решение усложняет управление пользователями, а именно создание и удаление. Будучи администратором LDAP, вам нужно создать первичную группу для всех пользователей ldap. Удалить группу основного пользователя, когда при удалении ненужного пользователя.

Кроме того, я бы отметил, что:

У меня из-за миграции с zentyal на openldap используется та же основная группа ( ПОЛЬЗОВАТЕЛИ ) для всех вновь созданных пользователей.

С одной стороны, это упрощает управление пользователями, с другой - не решает проблему с общей папкой для них.

vskubriev
источник