Эта проблема: CentOS, похоже, не смотрит на вторичные группы при использовании ACL для папки или файла
Сценарий: Базовая установка CentOS 6 использует учетные записи LDAP для аутентификации пользователей. Я пытаюсь установить довольно сложные разрешения для некоторых папок. Я убедился, что файловая система смонтирована с поддержкой ACL, и определил, что пользователи LDAP могут правильно входить в систему.
Действия по воспроизведению: В качестве теста у меня простая структура папок. Папка test1
принадлежит root и имеет 770 разрешений, я добавил еще одну группу в эту папку setfacl -m g:testgroup:rwx test1/
Вывод getfacl для папки выглядит так:
getfacl: Removing leading '/' from absolute path names
# file: share/test1/
# owner: root
# group: root
user::rwx
group::rwx
group:testgroup:rwx
mask::rwx
other::---
Пользователь andrew
принадлежит к группе домена и тестовой группе, как показано groups andrew
. Домен группы - это основная группа пользователей. Если пользователь andrew пытается прочитать что-либо, находящееся в test1, отображается ошибка отказа в разрешении. Если, однако, основная группа пользователей изменена на тестовую группу, пользователь может взаимодействовать с содержимым папки.
Может ли кто-нибудь сказать мне, что здесь происходит, и есть ли способ добиться ожидаемого поведения?
РЕДАКТИРОВАТЬ Похоже, это проблема, связанная с LDAP. Я только что протестировал использование локальных учетных записей, и все работает, как ожидалось.
Как вы говорите, эта проблема связана с использованием LDAP для получения информации о пользователях. Ваш компьютер Centos6 настроен таким образом, что несовместим с сервером LDAP, поэтому, когда он пытается получить список дополнительных групп, к которым принадлежит пользователь, он ничего не находит.
К сожалению, существует несколько стандартов интерпретации атрибутов LDAP, относящихся к группам POSIX - rfc2307, rfc2307bis, IPA.
Centos 6 использует SSSD для управления взаимодействием с удаленными каталогами и базами данных аутентификации. По умолчанию для SSSD используется rfc2307.
Вы, вероятно, обнаружите, что ваш сервер LDAP использует rfc2307bis. У нас есть сервер каталогов Centos 5, по умолчанию он был настроен на rfc2307bis. В качестве дополнительной сложности наш каталог C5 использовал атрибут uniqueMember вместо или member для членов группы.
Чтобы исправить это, отредактируйте /etc/sssd/sssd.conf и добавьте следующие строки:
ldap_schema = rfc2307bis
ldap_group_member = uniqueMember
Вы также можете сослаться на следующее:
Вы пробовали смотреть на числовой идентификаторы обеих групп, к которым принадлежит пользователь, и ACL каталога? Пытаться getfacl -n test1
и сравните перечисленные группы с выводом id -G andrew
. Посмотрите, есть ли там несоответствия, и попробуйте устранить их.