Немного опоздал на вечеринку, но в случае, если будущие читатели столкнутся с этим;) Как утверждают другие, в стандартной файловой системе OS-X setUID для каталогов игнорируется - и кажется, что не существует простого способа обойти это ( mount -o
.... или что нет). Как это часто бывает, справочная страница фактически не соответствует поведению OS-X, в котором она буквально заявляет:
4000 (бит set-user-ID-on-execute) [...] Каталоги с установленным битом set-user-id заставят все файлы и подкаталоги, созданные в них, принадлежать владельцу каталога, а не UID процесса создания [...]
но он также перечисляет возможность достижения того же эффекта, не отказываясь от первоначальной собственности. Linux использует '[g /] setfacls' для похожих эффектов (на первый взгляд они не видны, поэтому иногда могут быть неприятны).
Что касается того, «как я могу добиться подобных эффектов», прочитайте всю справочную страницу и поиграйте с:
chmod +a 'guest allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' ./[DIRECTORY]
вы можете проверить через
ls -le
если все выглядит хорошо. Дополнительные параметры включают вставку правил в определенные позиции, удаление или замену определенных правил. Два заслуживающих внимания варианта здесь " file_inherit
иdirectory_inherit
», позволяющих присоединить правила к новому каталогу / файлу.
Я не очень люблю использовать setUID, но setGID очень удобен на файловых серверах, где просто установка основной группы не работает, или у клиентов есть файловые маски, запрещающие запись группы. Это будет решено путем:
chmod +a 'mygroup allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' /fileserver/groupfolders/mygroup