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

Объясните, почему разрешения для папок различаются в зависимости от того, КАК пользователь обращается к серверу: 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»?!?

AFP использует модель разрешений, которая сильно отличается от NFS. Клиенты подключаются с использованием своих учетных данных, а затем доступ к файлам контролируется сервером. В некоторых случаях происходит «сопоставление привилегий», которое вы описываете.

Преимущества

  1. Намного более безопасный, чем традиционный NFS
  2. Очень простая модель и идеально подходит для клиента, у которого когда-либо был авторизован только один пользователь.

Недостатки

  1. Два пользователя на клиенте не могут одновременно получить доступ к той же смонтированной файловой системе AFP, что и они сами. Лучшее, что они могут сделать, - это получить доступ к файловой системе с разрешениями пользователя, который ее первым смонтировал (и даже для этого потребуется клиентский root для другого пользователя)
  2. Сообщенные разрешения не являются "реальными" разрешениями с точки зрения сервера.

Этот недостаток №2 исправлен в Snow Leopard 10.6. Остальные последствия модели безопасности по-прежнему применимы, но каким-то образом клиент знает, что нужно сообщать «реальные» разрешения, а не только «эффективные» разрешения, как это было раньше.

Дополнительная информация:

Я думаю, что когда у вас есть прямой доступ ко всем файлам, вы получаете реальные права на них. Когда вы монтируете его через AFP, кажется, что он показывает, скажем так, локальные разрешения. (Возможно, он не знает, кто другие пользователи в удаленной системе, и просто определяет, есть ли у вас доступ на чтение и запись к файлу, и дает вам право владения, если вы это делаете, и не показывает вам, если вы этого не сделаете. )

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