Почему по умолчанию umask – 002 или 022 во многих Unix-системах? Кажется неубедительным по умолчанию

Я давно использую Linux и Unix. В первый раз, когда я узнал, что Unix находится в компьютерном классе со многими учениками, преподаватель рассказал нам, что вы можете использовать ssh для входа на удаленные рабочие станции, предоставляемые университетом, который я изучаю.

В этом контексте я сразу же знаю, что Unix – многопользовательская операционная система, потому что было больше студентов, чем рабочих станций. (Принцип Pidgenhole)

Как-то после многих лет использования, я знаю, в основном, что umask (по умолчанию 002) и разрешение по умолчанию для пользователя (и нового пользователя) – 755 для папок, 644 для файлов.

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

Итак, почему umask по умолчанию – 002 во многих Unix-системах? Есть ли историческая причина, по которой традиционный Unix выбирает этот дизайн?

(Одна из возможных причин, по которым я могу думать, заключается в том, что в 1970-1980 годах компьютеры используются в основном в научных исследованиях, а вычислительная мощность сильно ограничена. Поэтому, когда выходит ранняя версия Unix, они решили, что разрешение по умолчанию должно быть легко вместо защиты конфиденциальности)

Unix изначально и долгое время использовался в профессиональной среде. В профессиональной среде очень часто приходится работать по той же теме, что и коллеги. Некоторые файлы являются конфиденциальными; например, каждая программа электронной почты, которую я когда-либо видел, создает файлы, которые только читаются владельцу (режим 600). Но имеет смысл, чтобы файлы были общедоступны для чтения по умолчанию: большинство файлов не являются конфиденциальными.

На частном машине, этот вопрос является спорным, так как существует только один пользователь.

Некоторые системы, которые, как ожидается, будут иметь несколько пользователей, которые не сотрудничают, используют 077 как umask. Системный администратор должен решить.

В наши дни системы управления версиями с центральным репозиторией, доступ к которым осуществляется через сетевой протокол и несколько рабочих копий (CVS, subversion, git, mercurial, …), очень распространены, поэтому пользователям проще обращаться напрямую к тем же файлам. До 1990-х годов это было реже, и пользователи, забывающие давать разрешения на чтение для файлов, которые другие должны были работать, были обычной проблемой.

Чтобы файлы всегда были приватными, даже если вы забыли запустить chmod , поместите их в закрытый каталог, например

 mkdir ~/private chmod 700 ~/private 

Никто другой (кроме root, конечно) не может обращаться к файлам под ~/private , независимо от их разрешения.