Почему файлы Mac могут иметь несколько владельцев?

7

Что касается прав доступа к файлам Unix, которые используют Mac, почему, в частности, файлы Mac могут иметь несколько владельцев? Например, вы можете просмотреть панель «Получить информацию» файла и в разделе «Разрешения» внизу добавить другого владельца, щелкнув знак «+».

Как это работает? Я не думаю, что ванильный Unix способен сделать это?

Gary
источник

Ответы:

6

Вы правы, ванильный Unix не поддерживает это. Но есть такая вещь, которая называется ACL (списки контроля доступа), которая позволяет гораздо более детально определить права доступа, чем обычные права пользователя / группы / мира. Из Википедии :

Большинство Unix и Unix-подобных операционных систем (например, Linux, BSD или Solaris) поддерживают списки ACL POSIX.1e, основанные на ранней версии POSIX, которая была заброшена. Многие из них, например AIX, FreeBSD, Mac OS X, начиная с версии 10.4 («Tiger»), или Solaris с файловой системой ZFS, поддерживают списки ACL NFSv4, которые являются частью стандарта NFSv4.

По умолчанию каждый файл имеет только права пользователя / группы / мира

введите описание изображения здесь

pse@Fourecks:~/Downloads$ ls -le UML_Plakat_8_2012_Web-Download_V1.pdf 
-rw-r--r--@ 1 pse  staff  4914537 Jun 21 09:56 UML_Plakat_8_2012_Web-Download_V1.pdf

Если вы сейчас добавите дополнительного владельца

введите описание изображения здесь

Finder автоматически создает соответствующую запись ACL для этого:

pse@Fourecks:~/Downloads$ ls -le UML_Plakat_8_2012_Web-Download_V1.pdf 
-rw-r--r--@ 1 pse  staff  4914537 Jun 21 09:56 UML_Plakat_8_2012_Web-Download_V1.pdf
 0: user:jonnyenglish allow read,readattr,readextattr,readsecurity

Вы также можете изменять записи ACL непосредственно из терминала с помощью chmod(что дает вам значительно больше деталей для манипулирования, чем диалоговое окно Get Info в Finder). Для получения подробной информации, вероятно, лучше всего запустить man chmodв Терминале и прочитать раздел ОПЦИИ МАНИПУЛЯЦИИ ACL .

Nohillside
источник
2
Отлично, хотя я бы просто добавил, что вам будет трудно найти современную реализацию Unix, которая не поддерживает это, но очень стандартно, просто администрирование на уровне командной строки затруднительно, и большинству людей никогда не нужно знать об этом.
Stuff
2
Администрирование является болезненным даже с графическим интерфейсом, потому что вы можете быстро выстрелить себе в ногу.
Nohillside