Домашняя папка имеет права только для чтения «все»

Я только что понял, что моя домашняя папка ( /HD/Users/Bob ) имеет разрешения «Только чтение» для всех, установленные на ее корневом уровне.

Если я просматриваю эту папку из другой учетной записи, я могу просматривать папки, но мне не разрешено открывать стандартные папки OS X («Рабочий стол», «Документы», «Музыка», «Фильмы» и т. д.). Однако я создал несколько папок на корневом уровне моей домашней папки, и они доступны для этого другого пользователя. Они могут открывать папки и открывать некоторые документы с доступом только для чтения.

Кто-нибудь еще это видит? Это стандартная конфигурация, или мой Mac облажался? Это похоже на дыру в безопасности, позволяющую пользователям получать доступ к файлам других пользователей в системе.

У меня довольно чистая сборка Yosemite 10.10.1 — она была установлена ​​около месяца назад. Я восстановил свои старые файлы с жесткого диска. Они не были восстановлены через Time Machine

Ответы (3)

Это стандартная конфигурация разрешений, и она существует со времен бета-тестирования Mac OS X, когда основы Unix были установлены для новой компьютерной ОС Apple.

Корень вашей домашней папки доступен для глобального чтения, но стандартные папки macOS, такие как «Рабочий стол» и «Документы», не должны иметь глобального доступа. Не стесняйтесь устанавливать разрешения для других папок, которые вы создаете в корне вашей домашней папки, чтобы они соответствовали разрешениям для стандартных папок.

Если вы хотите, чтобы новые папки по умолчанию были глобальными без доступа, измените разрешения в корне вашей домашней папки, рекурсивно распространите разрешения и настройте ACL для наследования разрешений для новых папок, однако я не уверен, как это повлияет можно иметь.

Если вы хотите, чтобы новые папки на верхнем уровне вашей домашней папки по умолчанию были недоступны для чтения кем-либо, кроме вас, добавьте в свою домашнюю папку следующие два ACL. НЕ РАСПРОСТРАНЯЙТЕ РАЗРЕШЕНИЯ. Первый ACL делает все новые папки недоступными для чтения, записи и поиска для всех. Второй ACL делает для вас исключение. Обязательно вводите их в этом порядке, чтобы вторая запись могла выдвинуться вперед.

chown +a "group:everyone deny list,add_file,search,add_subdirectory,delete_child,directory_inherit,limit_inherit,only_inherit" ~
chown +a# 0 "user:$USER allow list,add_file,search,add_subdirectory,delete_child,directory_inherit,limit_inherit,only_inherit" ~

Но, по правде говоря, проще просто установить разрешения для любых подпапок, которые вы создаете, непосредственно в своей домашней папке. Я имею в виду, ты не собираешься делать это часто, верно?

И кроме того, кто сказал, что вы хотите, чтобы эти новые папки были доступны для чтения только вам? Что, если вам нужна папка, доступная для чтения какой-то группе, но не доступная для чтения всему миру? Тогда эти унаследованные списки контроля доступа будут мешать вам.

Создание папки поверх домашней папки должно быть редким событием. Специальные решения лучше всего подходят для редких событий.

Тем не менее, некоторые из них пришли в MacOS из UNIX и/или Linux, где создание папки или файла в верхней части домашней папки является обычным явлением. Эти разрешения Mac по умолчанию портят нам жизнь, если мы продолжаем работать, как если бы мы работали в обычной системе UNIX.

Вау, я был в шоке, когда понял это.

Другое решение — заблокировать домашний каталог для всех остальных:

chmod 700 ~