• 022. Эта маска дает другим пользователям право чтения новых файлов и каталогов, что может быть важно в однопользовательской системе, так как многие демоны, которые работают как псевдопользователи, не могут видеть файлы и каталоги, созданные с помощью более строгой маски 077.
примечание
Некоторые приложения (в особенности почтовые программы) переопределяют права доступа, указанные командой umask, изменяя маску на 077, поскольку они считают, что их файлы являются собственностью лишь их владельца и никого более.
13.4. Порядок следования файлов запуска. Примеры
Теперь, когда вы знаете, что поместить в файлы запуска оболочки, самое время посмотреть на некоторые конкретные примеры. Удивительно то, что одним из самых трудных и запутанных моментов при создании файлов запуска является определение того, какой из нескольких файлов запуска использовать. В следующих разделах рассказано о двух самых популярных оболочках Unix: bash и tcsh.
13.4.1. Оболочка bash
В оболочке bash можно выбирать среди файлов запуска. bash_profile, profile, bash_login и. bashrc. Какой из них соответствует командному пути, пути к страницам руководства, приглашению, псевдонимам и маске прав доступа? Ответ такой: файл. bashrc должен сопровождаться символической ссылкой. bash_profile, указывающей на файл. bashrc, поскольку существует несколько различных типов экземпляров оболочки.
Два главных типа экземпляров оболочки — интерактивный и неинтерактивный, но из них только интерактивные оболочки представляют интерес, поскольку неинтерактивные оболочки (например, те, которые запускают сценарии оболочки) обычно не читают никаких файлов запуска. Интерактивными оболочками являются те, которые вы применяете для запуска команд из терминала, вроде тех, что вы видите в этой книге, и они могут быть разделены на оболочки
Оболочки для входа в систему
Традиционно оболочка для входа в систему возникает, когда вы в первый раз входите в систему с помощью терминала, используя такую команду, как /bin/login. Удаленный вход в систему по протоколу SSH также выдает вам оболочку для входа в систему. Основная идея: оболочка для входа в систему является начальной оболочкой. Можно определить, является ли оболочка оболочкой для входа в систему, запустив команду echo $0; если первый символ ответа дефис (-), то эта оболочка является оболочкой для входа в систему.
Когда оболочка bash запущена для входа в систему, она выполняет файл /etc/profile. После этого она ищет пользовательские файлы. bash_profile, bash_login и. profile, запуская только первый файл, который обнаружит.
Как бы странно это ни звучало, но возможно запустить неинтерактивную оболочку в качестве оболочки входа в систему, чтобы принудительно исполнить ее файлы запуска. Для этого запустите такую оболочку с параметром — l или — login.
Оболочки не для входа в систему
Оболочка не для входа в систему — дополнительная оболочка, которую вы запускаете после входа в систему. Это всего лишь любая интерактивная оболочка, которая не является оболочкой входа. Терминальные команды системы управления окнами (xterm, GNOME Terminal и т. д.) запускают оболочки не для входа в систему, если только вы не запросите специально оболочку для входа.
После запуска в качестве оболочки не для входа в систему оболочка bash выполняет файл /etc/bash.bashrc, а затем запускает пользовательский файл. bashrc.
Последствия наличия двух типов оболочек
Причины, по которым существуют два различных типа файлов запуска, заключаются в том, что в давние времена пользователи входили в систему через традиционный терминал с оболочкой для входа в систему, после чего запускали подоболочки не для входа с системами управления окнами или экранной программой. По поводу подоболочек не для входа в систему было решено, что повторяющаяся настройка среды пользователя и запуск набора команд, которые уже запущены, являются расточительством. В оболочках для входа в систему можно было бы запускать замысловатые команды запуска из таких файлов, как. bash_profile, оставив только псевдонимы и другие «легковесные» вещи файлу. bashrc.
В наши дни большинство пользователей входит в систему через графические менеджеры дисплея (из следующей главы вы узнаете об этом подробнее). Многие из них начинают работу с одной неинтерактивной оболочки для входа в систему, чтобы сохранить описанную выше модель «для входа — не для входа». Если они этого не делают, вам придется полностью настроить окружение (путь, путь к страницам руководства и т. п.) в файле. bashrc, а иначе вы не увидите ничего из вашего окружения в терминальном окне оболочек. Кроме того, вам потребуется также файл. bash_profile, если вы желаете войти в консоль или удаленно, поскольку такие оболочки для входа даже не беспокоятся о файле. bashrc.
Пример файла. bashrc