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