Дозволи для нових файлів у спільному каталозі


31

Щойно ми отримали новий iMac за допомогою /Users/Sharedкаталогу для зберігання медіа-активів (зображень, аудіо, відео), які ми хочемо доступні для всіх користувачів на машині. Після копіювання всіх файлів спочатку ми встановлюємо потрібні дозволи, а потім рекурсивно застосовуємо однакові дозволи до всього вмісту каталогів. Це працює добре, за винятком випадків, коли хтось створює новий файл або каталог, він не має однакових дозволів, і ми повинні повторити весь процес дозволів, перш ніж кожен може отримати доступ до нього.

Чи є спосіб встановити дозволи для всіх нових файлів / каталогів, створених у цьому каталозі?


Розширені атрибути дозволять вам встановити деякі дуже ліберальні дозволи доступу та наказати їм поширюватися всередині каталогу та продовжувати робити це для нових творінь, але я не можу знайти інструкцій. Я можу це зробити лише на серверах OSX за допомогою інструментів серверного адміністратора, які, напевно, тут не є життєздатним варіантом?
Джейсон Салаз

Ні. У нас є лише доступ до дисків ОС, які постачаються разом з iMac.
Деніел Даніель

1
Якщо ви із задоволенням працюєте в Терміналі, це може бути відповідь, яку ви шукаєте.
boehj

Відповіді:


32

Це неможливо зробити за допомогою традиційних дозволів у стилі POSIX, але ви можете зробити це із спадковими записами контролю доступу. Щоб дозволити читання та запис для всієї групи "персоналу" до всього в / Користувачі / Спільний / Діляться спільним користуванням, ви використовуєте:

sudo chmod -R +a "staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/reallyshared

У file_inherit,directory_inheritчастині означає , що цей елемент управління доступом вони будуть додані в нові файли і папки , що створюються всередині цієї папки, але не автоматично застосовується до елементів вже там (саме тому я додав -Rпрапор до chmod- що відноситься це до всього , в даний час в папку), і він не застосовуватиметься до елементів, створених десь ще, а потім переміщуватиметься в цю папку (я не знаю способу цього, вибачте).


Я дуже хотів би знайти спосіб зробити цю роботу навіть для файлів, переміщених у загальний каталог. Неприємно мати файли у спільному каталозі, які в кінцевому підсумку не можуть бути повністю спільними.
радвен

Це все ще не дозволяє записувати в папку, якщо дозволи posix не дозволяють. Тобто я створюю цю папку в Finder: drwxr-xr-x+ 2 User staff 68 Dec 15 14:10 untitled folder+ в кінці означає, що вона отримала розширений ACL, застосований за допомогою вашої команди вище, але Windows все ще каже, що дозвіл відмовлено, якщо я спробую записати файл у цю папку. Тільки chmod g+w untitled\ folderдозволяє мені написати це. Можливо, тому, що я встановив Samba, щоб обійти жахливу нову SMB-реалізацію OSX.
Кріс Дракон

@ChrisDragon: це здається, що самба не належним чином поважає ACL. Я знайшов пропозицію тут , щоб додати nt acl support = noв [Global]розділ /etc/smb.conf, але я не впевнений , що по - , як і раніше актуальна в currentish версіях самби.
Гордон Девіссон

4

Інший підхід полягає у використанні терміналу (він же оболонки або командного рядка) для створення / редагування (повинен виконуватись як суперкористувач, див. Sudo) файл:
/etc/launchd-user.conf
додавання рядка:
umask 000
зберегти та перезавантажити. Нові файли / папки (включаючи файли, змінені зберегти як) дозволять кожному читати / писати.

Це працює за допомогою зміни дозволів на створення файлів за замовчуванням для програм, тоді як підхід ACL працює з точки зору правил доступу, пов'язаних з певними файлами та папками.

Без цього налаштування створюються файли, що дозволяють користувачеві: читати-писати, групувати та інше: лише для читання.

Якщо ви ділитесь між кількома комп’ютерами, потрібно зробити це для всіх комп’ютерів, які використовуватимуть спільний доступ.

Якщо у вас є наявні файли та папки у спільній області, вам потрібно зробити їх усі читатими / записатими всіма користувачами:
sudo chmod -R og+w <shared-folder-name>

Команда читається англійською мовою як режим зміни, рекурсивно через усі підпапки та файли, інші & групові дозволи додають доступ для запису, починаючи з папки з.

Цей підхід згадується на форумах для роботи принаймні з 10,6 і все ще працює з 10,7.

Інші фактори все ще впливають на доступ до вмісту. Наприклад, дозволи, встановлені на панелі керування спільним доступом, дозволами домашньої папки / ACL та при використанні Terminal будь-якого umask, що діє для оболонки.

Знайдіть дозволи на доступ до файлів umask та Posixдля детальної інформації про ці концепції Unix. У списку записів слово каталог - це Unix-реч, синонім папки. Ви також зіткнетеся з термінами UID та GID: ідентифікатори користувача та групи, які визначають власність Posix на запущені програми (процеси). Зауважте, що UID та GID - це числа, які можуть бути однаковими або різними для даного імені користувача на різних комп’ютерах. Ці номери присвоюються іменам у акаунтах замовлень, створених на заданому комп'ютері, як правило, починаючи з ідентифікатора 501. У домашніх мережах відсутній механізм узгодження цих призначень на комп'ютерах. Тому на мережевих спільних файлах може здаватися, що файл належить різним користувачам, оскільки ідентифікатор користувача до прив'язки імен користувача визначається з точки зору доступу комп'ютера до комп'ютера. Таким чином, акції дійсно завжди дозволяють кожному отримувати доступ до файлів різного рівня. Іншими словами, дозвіл Posix "інший" - це невизначений ліміт доступу, який дозволяє передбачати досить передбачуваний, але, очевидно, невизначений ступінь доступу залежно від ідентифікаторів користувачів, призначених на різних комп'ютерах. Це призводить до явно абсурдних змін у досвіді, коли в деяких мережах, наприклад, налаштування лише одного облікового запису користувача, коли-небудь створеного на кожному Mac, зможе ділитися без будь-яких змін дозволів, оскільки всі облікові записи матимуть однаковий UID (501, ні незалежно від того, як називаються акаунти), тоді як інша мережа, що використовує кілька облікових записів користувачів на Mac, відразу побачить проблеми. Тож деякі групи ніколи не будуть боротися з цим, тоді як деякі інші можуть побачити проблеми, які розвиваються з часом, або проблеми, які виникають / зникають спонтанно,

Таємниця, чому Apple залишила настільки гнійний дефект юзабіліті в конфігурації такого, інакше простого, щоб включити можливість обміну файлами.

На зовнішніх дисках ця проблема вирішується за допомогою параметра "Ігнорувати дозволи на цей том". Можливо, існує подібна функція для спільного використання файлів Apple, але де це.

Якщо у вас є конфігурація служби Samba, існують інші механізми вирішення цих проблем, але Samba зовсім не проста у використанні.


/etc/launchd-user.conf застаріло на користь використання launchctl. Дивіться support.apple.com/en-us/HT201684
Джесс Боуерс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.