Мы использовали Ubuntu Linux на настольных компьютерах с аутентификацией ldap. И на сервере, и на клиентах у нас одинаковые пользователи и группы.
Я настроил сервер NFS с общедоступным общим ресурсом, который должен быть доступен для всех пользователей с правами на запись. Например, один созданный пользователем файл, другой сможет удалить этот файл по умолчанию.
У меня есть следующие требования:
- Я не хочу менять umask по умолчанию (0022) на клиентских машинах.
- Я не хочу использовать 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 в моем случае.
Помогите мне найти обходной путь.