Из этой статьи вы узнаете:
Что такое umask в Mac OS X?
Какие функции выполняет umask в Mac OS X?
В тот момент, когда вы создаете файл или папку в OS X, система изначально не знает, какой уровень доступа предоставить новому объекту, и применяет полные права для каждого (или так называемый уровень 7). Именно в этот момент в системные процессы вступает umask, работая как фильтр, снижая ценность предоставленного доступа для всех участников системы. Как вы понимаете, делается это в целях безопасности.
Давайте посмотрим на работу umask в среде Mac OS X. Для этого нам потребуется открыть терминал (Программа терминал в OS X находится в папке "Утилиты", среди всех программ устанавливаемых на вашей системе). Итак, в открытом терминале набираем команду umask и в ответ, скорее всего получаете значение похожее на "0022".
Первые ноль в этом списке нам не интересен (он отвечает за SetUID, SetGID - это инструмент определяющие ID пользователя, и ID группы во время выполнения каких-либо задач). Инструмент не так важен для повседневных задач и поэтому мы его пропустим. Нас больше интересует следующие три значения 022, которые являются маской разрешений для пользователя, группы и всех остальных, соответственно.
Получается, что будучи маской этот системный компонент накладывает отпечаток на уровни доступа, так как они вычитаются от начальных прав (7-го уровня), подгоняя тем самым разрешения по умолчанию к тому виду какой мы наблюдаем после создания новых объектов.
Получается, что umask системы равный 022 будет распределять права на доступ к новым файлам следующим образом. Создается новый файл, с правами доступа равными 777 (где любые действия с системой могут выполнять любые пользователи), затем применяется umask, и права получают следующий 755 (где пользователь не теряет в доступе так как на него поставлен "0", а все остальные получают возможность производить чтение и выполнение созданных объектов). Соответственно если бы umask вместо 022 был равен 000, в системе творились невероятные "чудеса" так как права администратора имел любой проходящий мимо. Такая ситуация абсурдна и в повседневной "реальности" не случается. Впрочем, как и umask равный 777, никто кроме самой системы не имеет доступа к ней (компьютерный вакуум).
Таким образом umask делится доступом и назначает приоритеты по умолчанию. umask применим ко всем файлам и папкам, созданным в системе, и не важно где эти объекты созданы, в общей папке или в частной. Единственными папками под вашей учетной записью, у которых есть действительно частные установки доступа по умолчанию, являются Документы, Рабочий стол, Музыка, Фильмы и другие встроенные директории. Если вы создадите новую папку рядом с ними, umask сделает его как минимум удобным для чтения всем. Фактически, у файлов и папок, которые создаются в пределах папок Документы и Музыка (а также другие директории по умолчанию) есть разрешения, открывающие доступ другим пользователям, при этом ограниченность разрешений самих каталогов Документы и Музыка служат преградой, закрывающей доступ.
Вы спросите как поменять umask?
Как вы наверное понимаете изменение параметров umask процесс ювелирный. Вы должны четко осознавать к каким это может привести последствиям. Из коробки менять систему выглядит как минимум не логично, тем более что есть некоторые программы и службы, которые после изменения umask могут пожаловаться на нарушение их рабочих процессов. Это происходит потому, что фоновые службы основываются на umask для того чтобы не напутать с доступом.
В подавляющем большинстве случаев эти ограничения относится к системным процессам, а не к самой учетной записи пользователя. Поэтому изменение umask глобально может привести к проблемам, но в то же время регулирование деятельности пользователя в системе, может быть полезным.
Самое удивительное состоит в том, что назначение прав на уровне системы, изменение umask, осуществляется довольно просто. Достаточно в терминале набрать команду umask 011, и маска изменится из стандартной 022 на 011.
Если вы наберете umask со значением нужным именно вам из терминала это безусловно повлияет на создание новых файлов и папок в текущей сессии. Что это значит? Это значит, что после завершение и последующего входа в терминал, значение приобретет первоначальный вид. Соответственно Finder и другие программы системы не будут затронуты. Изменение umask на уровне системы процесс более сложный, и требует вмешательства в конфиги системы, которые начинают работать после полной перезагрузки. Изменения происходят на уровне (launchd).
Launchd - это процесс запуска/перезапуска процессов используемый в Mac OS X. Имеет ID равный 1, является аналогом init в Linux. Скрываясь от глаз пользователя Launchd и выполняя незаметные действия, именно он общается с umask, а значит любые установки по глобальному изменению прав для umask настраиваются через него.
Изменения umask на уровне launchd, приведет к изменениям в работе Finder и других приложений, которые Вы запускаете из под своей учетной записи.
Вот собственно и все о чем хотелось рассказать дорогие друзья. Статья получилась не столько большой, сколько разносторонней, и поэтому мы разбили ее на две части. Сегодня вы узнали как Mac OS X присваивает доступ к созданным файлам и папкам, поговорили о том, как изменять атрибуты углубились в дебри системных процессов. Надеюсь, что статья вам понравилась и мы получим свой "Like" для страницы на Facebook. Хочется отметить, что мы намеренно не рассказали вам о том, как применить глобальные правила для umask в системе Mac OS X. Так как считаем, что это необходимо делать, только если Вы действительно уверены в своих знаниях, и готовы рушить правила на уровне системе. В остальном, можно просто обойтись запретом на чтение некоторых ваших папок, которые вылезают на других учетных записях, или просто не записывать туда ничего, пусть она останется пустой. Удачи и до новых встреч!
В центре внимания читателей:
Рассказываем о iOS 7 или что такое синяя точка? Как удалить почту на iOS 7, и почему мое устройство быстро садится?
Как пользоваться iBooks в OS X Mavericks. Дадим несколько советов
Разбираемся с поиском в Spotlight на Mac OS X
Почему Windows?
Друзья! Понравилась статья? Мне нужна ваша поддержка в Яндекс Дзен
Подпишитесь, поставьте Лайки!
СПАСИБО!!!