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

Как работают разрешения, когда задействован уровень совместного использования?

У меня есть файловый сервер, на котором работает OpenIndiana, и у меня несколько клиентов всех вкусов. Windows, OSX и Linux (в основном Ubuntu). Я разделяю некоторые файловые системы ZFS через AFP, CIFS, NFS. Я понимаю стандартные разрешения стиля 777 для локальной файловой системы, и я понимаю ACL в ограниченной степени.

Я не понимаю, что происходит, когда вводится уровень совместного использования, как тогда работают разрешения? Меня в первую очередь интересует CIFS между системами на основе Unix, поскольку это то, что я использую в основном, но общее понимание тоже будет отличным.

Чтобы работать над примером, у меня есть несколько машин с приложениями ubuntu, которым при загрузке требуется доступ к определенным структурам папок на общем ресурсе. Как лучше всего управлять их доступом?

Разрешения складываются друг над другом.

Например: предоставить Джо доступ к общему ресурсу, но не к базовой структуре диска => доступ запрещен. Предоставить Джо доступ к диску, но не к самому общему ресурсу => доступ запрещен. Предоставить Джо доступ к обоим => доступ предоставлен.

Это легче всего увидеть в конфигурации CIFS / SMB.

Другие продукты - NFS или CIFS в гостевом режиме - также могут маскировать всех входящих пользователей под одной конкретной учетной записью в локальную файловую систему.

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

Разрешения файловой системы применяются к пользователям локальной системы.

Все протоколы совместного использования сети должны полагаться на уровень трансляции для преобразования учетных данных доступа к сети в учетные записи локальных пользователей.

Для более крупных сетей полезно, если это может быть централизовано, с помощью LDAP, NIS и т.п.

ДОБАВЛЕНО: вы специально спрашивали о CIFS между машинами * nix - ну, если обе не поддерживают материал winbindd, любые разрешения и владение ограничены тем, что установлено в точке монтирования.

То есть при совместном использовании / mnt / foo на хосте A через CIFS с использованием пользователя Joe будут актуальны только разрешения, установленные при монтировании с помощью user = Joe на хосте B.

Любые разрешения в исходном местоположении заменяются глобальными, установленными на монтировании.