Назад | Перейти на главную страницу

Совместное использование папки через NFSv4 и Samba

У меня проблемы с получением надлежащего права доступа для работы с папкой, к которой предоставлен общий доступ через самбу и nfs. Подключено так:

┌────────────┐    ┌──────────────┐    ┌──────────────┐
│ NFS-Server ├────┤ NFS Client   ├────┤ Samba Client │
│            │    │ Samba Server │    │              │
└────────────┘    └──────────────┘    └──────────────┘

Машина посередине - это общая машина для разработки (под управлением Linux). Клиентами Samba обычно являются Windows. Причина такого подключения кроется в сетевой политике / брандмауэре. Настоятельно не рекомендуется напрямую обращаться к серверу NFS через Samba.

Вдобавок, как побочный эффект, эта настройка дает всем самба доступ к машине разработки.

Экспортированные ресурсы NFS должны быть доступны для чтения / записи определенной группе. Я реализовал это с помощью списков ACL Unix. При доступе к общему ресурсу напрямую через машину разработки (клиент NFS) это уже доставляет мне неприятности. Похоже, что mask не хранится должным образом.

Я нашел в Интернете пару ресурсов, посвященных этой теме, но мне все еще трудно понять, почему и как это происходит.

Я также столкнулся с ACL NFSv4, которые отличаются от ACL, которые вы установили с помощью setfacl. Я тоже попытался поиграть с ними, но запуск команды дал мне ошибку:

[11:24:32] michel@BBS-extractor coftp $ nfs4_getfacl .
Operation to request attribute not supported.

Я подумал, что это может быть проблема, связанная с параметрами монтирования. Однако базовая FS - это ext4 объем. Что не имеет ничего общего с NFS ... верно?

Может кто-нибудь объяснить мне, что здесь происходит? Почему по умолчанию mask игнорируется при использовании NFS?

В качестве практического примера позвольте мне привести списки ACL корневой папки:

[11:30:26] michel@BBS-extractor coftp $ getfacl .
# file: .
# owner: coftp
# group: coftp
# flags: -s-
user::rwx
group::rwx
group:coftp:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:coftp:rwx
default:mask::rwx
default:other::r-x

После создания папки с именем test на удаленной машине я получаю следующее:

[11:30:26] michel@BBS-extractor coftp $ getfacl test
# file: test
# owner: michel
# group: coftp
# flags: -s-
user::rwx
group::rwx                      #effective:r-x
group:coftp:rwx                 #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::rwx
default:group:coftp:rwx
default:mask::rwx
default:other::r-x

Это показывает, что группа «coftp» не будет иметь доступа на запись в эту папку, хотя в ACL корневой папки она должна быть. Причина в том, что mask. Корневая папка указывает маску по умолчанию, но кажется, что она игнорируется / изменяется при доступе к папке через NFS.