Трохи запізнюючись на вечірку, але у випадку, якщо майбутні читачі натрапляють на це;) Як зазначають інші, у стандартній файловій системі OS-X setUID для каталогів ігнорується - і, здається, це не простий спосіб ( mount -o
.... чи що ні). Як це часто, сторінка man насправді не відповідає поведінці OS-X, про яку вона буквально говорить:
4000 (біт set-user-ID-on-Execution) [...] Каталоги з набором біта 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