2

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

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

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

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

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

Я создаю начальную папку с по умолчанию ACL, со следующими разрешениями для каталога папок , принадлежащих группой inoffice

$ 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. Этот каталог должен быть доступен для записи для пользователей в группе inoffice. 2. Все новые файлы и каталоги наследуют group:inoffice:rwx permissions

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

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 в моем случае.

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

1 ответ1

0

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

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

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

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

У меня из-за миграции с zentyal на openldap используется одна и та же базовая группа (USERS) для всех вновь создаваемых пользователей.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .