Объясните, почему права доступа к папке различаются в зависимости от того, КАК пользователь обращается к серверу AFP против SSH.
Надеясь, кто-то может объяснить, что, вероятно, довольно очевидно... но смущает меня.
Представьте себе двух пользователей с правами администратора на нашем сервере (Mac OS X Server 10.5). Назовите их Джо и Боб.
оба пользователя являются членами этих групп:
Staff Group ID: 20
Workgroup Group ID: 1025
Admin Group ID: 80 (assuming "[X] Administer Server" in Workgroup Manager sets this)
Общая папка "devfolder" имеет общий доступ к настройкам:
POSIX:
Owner: joe read & write
Group: admin read & write
Other no access
ACL:
Workgroup Allow Read & write
Вопрос в том, почему при просмотре одной и той же папки вид собственности меняется в зависимости от того, кто ищет?!? Оба смотрят на одну и ту же папку на сервере:
С точки зрения Джо:
xserve:devfolder joe$ ls -l
drwxrwxr-x 6 joe workgroup 204 May 20 19:32 app
drwxrwxr-x 9 joe workgroup 306 May 20 19:32 config
drwxrwxr-x 3 joe workgroup 102 May 20 19:32 db
drwxrwxr-x 3 joe workgroup 102 May 20 19:32 doc
drwxrwxr-x 3 joe workgroup 102 May 20 19:32 lib
И с точки зрения Боба (папка, смонтированная на его машине через AFP):
bobmac:devfolder bob$ ls -l
drwxrwxr-x 6 bob _bob 264 May 20 19:32 app
drwxrwxr-x 9 bob _bob 264 May 20 19:32 config
drwxrwxr-x 3 bob _bob 264 May 20 19:32 db
drwxrwxr-x 3 bob _bob 264 May 20 19:32 doc
drwxrwxr-x 3 bob _bob 264 May 20 19:32 lib
Теперь, если Боб подключается к серверу через SSH, то его вывод идентичен выводам Джо, как и ожидалось.
Может кто-нибудь сказать мне, что клиент делает в этом случае и что следует ожидать, когда bob создает или обновляет файлы в этой папке? Какие инструменты мне нужны, чтобы лучше понять это из командной строки? Это нормально? Возможно, "более чистый" способ, который не будет путать с "bob _bob"?!?
2 ответа
AFP использует модель разрешений, которая сильно отличается от NFS. Клиенты подключаются, используя свои учетные данные, а затем доступ к файлам контролируется сервером. В некоторых случаях возникает "Отображение привилегий", которое вы описываете.
Выгоды
- Гораздо безопаснее, чем традиционный NFS
- Очень простая модель и идеально подходит для клиентов, в которых зарегистрирован только один пользователь
Недостатки
- Два пользователя на клиенте не могут одновременно получить доступ к той же смонтированной файловой системе AFP, что и они сами. Лучшее, что они могут сделать, - это оба получить доступ к файловой системе с разрешениями пользователя, который первым ее смонтировал (и даже для этого потребуется клиентский root для другого пользователя).
- Указанные разрешения не являются "настоящими" разрешениями с точки зрения сервера.
Этот недостаток № 2 исправлен в Snow Leopard 10.6. Остальные значения модели безопасности по-прежнему применимы, но клиент каким-то образом знает, что нужно сообщать о "реальных" разрешениях, а не только о "эффективных" разрешениях, как это было раньше.
Больше информации на:
Я думаю, что когда у вас есть прямой доступ ко всем файлам, вы получаете реальные права на них. Когда вы монтируете его поверх AFP, кажется, он показывает, скажем так, локальные разрешения. (Возможно, он не знает, кто другие пользователи в удаленной системе, и просто определяет, есть ли у вас доступ для чтения и записи к файлу, и дает вам право собственности, если вы это делаете, и не показывает вам, если вы этого не делаете.)
Если bob изменяет файл, я думаю, вы обнаружите, что разрешения остаются такими же, как при просмотре с сервера. Я действительно не уверен, что происходит, когда он создает файл. Я подозреваю, что атрибуты владения будут соответствовать учетным данным, используемым для получения доступа к общему ресурсу AFP.