Я немного знаю о ACL по давнему опыту, но никогда не проверял их в OSX (в настоящее время у меня есть стандартная версия 10.6.7, не серверная на автономном iMac). Я только что заметил, что некоторые учетные записи пользователей без прав администратора, которые я создал недавно (чейнджер и тест), имеют ACE для всех: deny delete.
У моей собственной учетной записи администратора нет ACL, как и у учетной записи без прав администратора, которую я создал сегодня.
Я запутался.
A) Разве это не означает, что никакие файлы не могут быть удалены кем-либо из этих каталогов (чейнджер и тест)? Б) Есть идеи, как они туда попали?
Это мой каталог / Users
mimac:~ frank$ ls -le /Users
total 0
drwxrwxrwt 4 root wheel 374 Sep 25 2010 Shared
drwxr-xr-x+ 15 Test staff 612 Dec 2 13:11 Test
0: group:everyone deny delete
drwxr-xr-x+ 11 changer staff 510 Apr 1 00:07 changer
0: group:everyone deny delete
drwxr-xr-x@ 67 frank admin 3536 Apr 4 16:06 frank
drwxr-xr-x 11 newone staff 408 Apr 6 02:07 newone
Как отмечает churnd, это объект по умолчанию, хотя он находится не в / Users, а в самих домашних каталогах, заполненных в / Users, чтобы предотвратить случайное удаление.
Он присутствует по умолчанию во время создания домашних каталогов, потому что новые домашние каталоги создаются на основе шаблона, найденного в / System / Library / User Template. Именно для этих файлов списки ACL указаны в списке свойств.
В версии 10.6 в каталоге / var / db / Receiver списки ACL по умолчанию указываются в списках свойств. Ниже приведен пример, в котором я использую значения по умолчанию команда для чтения ключа PathACLs в одном из основных файлов .plist, созданных при первоначальной установке ОС.
[root@lithium5 19:13:43 /var/db/receipts]# defaults read /var/db/receipts/com.apple.pkg.Essentials PathACLs
{
Applications = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
"Applications/Utilities" = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
Library = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
"System/Library/User Template/English.lproj/Desktop" = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
"System/Library/User Template/English.lproj/Documents" = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
"System/Library/User Template/English.lproj/Downloads" = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
"System/Library/User Template/English.lproj/Library" = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
Этот фрагмент примера показывает группа: запретить всем удалять для таких вещей, как каталог / Applications, а также папки в / System / Library / User Template / English - именно эта папка является источником того, как появляются новые домашние каталоги при создании с помощью команды PrefPane или createhomedir.
Это значение по умолчанию в OS X 10.6. У меня тоже есть. Он не позволяет кому-либо удалить каталог / Users, так как это системный каталог.