Файлы и каталоги

Файлы, каталоги и разрешения

Статья включает:

Файлом является все
Типы файлов
Имена файлов и путевые имена
Абсолютные и относительные путевые имена
Каталоги "точка" и "две точки"
Примечание о команде cd
Отсутствие буквенных обозначений для дисков
Путевые имена, начинающиеся с точки
Расширения
Отображение пространства путевых имен
Правила образования имен файлов
Где все хранится?
/
/bin
/boot
/dev
/etc
/fs
/home
/lib
/proc
/root
/sbin
/tmp
/usr
/var
Владение файлами и права доступа
Команды setuid и setgid
Sticky-бит
Принятые по умолчанию права доступа к файлу
Расширения файловых имен
Устранение неполадок


Note: Этот раздел посвящен работе с файловой системой QNX4, используемой в ЗОСРВ «Нейтрино» и по умолчанию совместимой с файловой системой ОСРВ QNX версии 4.

Файлом является все

В операционной системе файлами является практически все. Устройства, данные и даже службы обычно представлены в виде файлов. Это позволяет легко работать с локальными и удаленными ресурсами непосредственно из командной строки или с помощью любой программы, которая оперирует файлами.

Типы файлов

ЗОСРВ «Нейтрино» поддерживает следующие типы файлов (приведенный в скобках значок используется командой ls -l для идентификации соответствующего типа):

обычный (-)
файл, содержащий данные пользователя, такие как код С, HTML и данные. Например, /home/fred/myprog.c;
каталог (d)
по сути, это нечто, содержащее файлы и другие каталоги. Например, /home/fred. Каталог выполнен в виде файла на диске, в котором хранится список имен файлов и других каталогов. Имя файла может быть ассоциировано с записью inode.
символьная ссылка (l)
дополнительное имя файла или каталога. Например, /usr/bin/more является символьной ссылкой на /usr/bin/less.
специальный именованный (n)
область разделяемой памяти, например /dev/shmem/Pg101e0001;
символьно-ориентированные специальные файлы (c)
записи, представляющие символьное устройство. Например, /dev/ser1 представляет последовательный порт;
специальные файлы FIFO (p)
постоянные именованные программные каналы, через которые две программы взаимодействуют, например, PipeA;
блочно-ориентированные специальные файлы (b)
записи, представляющие блочное устройство, например, диск. К примеру, /dev/hd0 представляет "сырые" блочные данные на основном диске;
сокеты (s)
записи, представляющие коммуникационные сокеты, в частности сокет домена UNIX. Более подробные сведения см. в описании функции socket().

Некоторые файлы являются постоянными и не удаляются при перезагрузке системы — таково большинство файлов в файловой системе диска. Другие файлы могут существовать только до тех пор, пока выполняется отвечающая за них программа. В качестве примеров таких файлов можно привести объекты разделяемой памяти, объекты в файловой системе /proc и временные файлы на диске, которые продолжают использоваться, даже если ссылки на эти файлы (их файловые имена) уже удалены.

Имена файлов и путевые имена

Для обращения к какому-либо файлу или каталогу вам необходимо указать путевое имя (pathname) — символьное имя, которое указывает программе, где искать файл в иерархической структуре каталогов, основанной на корневом каталоге (/).

Типичное путевое имя в ЗОСРВ «Нейтрино» выглядит следующим образом:

/home/fred/.profile.
В этом примере файл .profile находится в каталоге fred, который, в свою очередь, располагается в каталоге home в / (корневом каталоге).

6_1.png
Рисунок 1. Типичное путевое имя

Как и в системе Linux и других UNIX-подобных операционных системах, в ЗОСРВ «Нейтрино» компоненты путевого имени разделяются косой чертой (/). В отличие от этих ОС, в операционных системах Microsoft используется обратная косая черта (\).


Note: Для просмотра файлов и каталогов в вашей системе используйте утилиту ls. Она является эквивалентом команды dir в системе MS-DOS.

Абсолютные и относительные путевые имена

В ЗОСРВ «Нейтрино» различаются два типа путевых имен.

абсолютный маршрут доступа к файлу
Путевые имена, начинающиеся с косой черты, указывают местонахождение конкретного файла по отношению к корневому каталогу (/). Например, /usr/lib/libz.so.2.
относительный маршрут доступа к файлу
Путевые имена, начинающиеся не с косой черты (/), обозначают местонахождение файла по отношению к текущему рабочему каталогу. Например, если ваш текущий каталог/home/fred, то относительный маршрут доступа к файлу .ph/helpviewer будет соответствовать абсолютному маршруту /home/fred/.ph/helpviewer.

Путевое имя /home/fred/.ph/helpviewer на самом деле задает каталог, а не обычный файл. По виду путевого имени нельзя определить, указывает ли оно на обычный файл, каталог, символьную ссылку или файл какого-либо иного типа. Для определения типа файла используйте команды file или ls. Исключением является путевое имя, которое заканчивается косой чертой (/), оно всегда указывает на каталог.

При использовании опции -F в утилите ls эта утилита покажет косую черту в конце имени каталога.

Каталоги "точка" и "две точки"

Каждый каталог в файловой системе QNX4 содержит следующие специальные ссылки:

. (точка)
текущий каталог;
.. (две точки)
каталог, в котором появляется текущий каталог.

Например, чтобы вывести список каталога, находящегося над текущим каталогом, наберите команду:

ls ..

Если текущий каталог /home/fred/.ph/helpviewer, вы можете вывести список корневого каталога с помощью команды:

ls ../../../..

Однако абсолютный путь (/) значительно короче, и вам не нужно гадать, сколько добавлять "двойных точек".


Note: Файловые системы флэш-памяти не поддерживают символы . и .., однако командный интерпретатор может распознать их перед тем, как передать путь в файловую систему. Вы также можете установить жесткие ссылки на эти имена в файловой системе флэш-памяти.

Примечание о команде cd

В некоторых традиционных системах UNIX команда cd (перейти в другой каталог) модифицирует заданное имя пути, если оно содержит символьные ссылки. В результате путевое имя нового текущего рабочего каталога (которое вы можете отобразить с помощью команды pwd) может отличаться от того, которое было передано команде cd. Однако в ЗОСРВ «Нейтрино» команда cd не модифицирует имя пути (за исключением случаев использования .. (двух точек)). Например, при выполнении следующей команды:

cd /home/dan/test/../doc

текущим рабочим каталогом станет каталог /home/dan/doc, даже если какие-либо элементы в имени пути были символьными ссылками.

Отсутствие буквенных обозначений для дисков

В отличие от ОС Microsoft Windows, в которой диски обозначаются буквами, стоящими впереди путевого имени (например, C:\), в ЗОСРВ «Нейтрино» диски обозначаются как обычные каталоги в пространстве путевых имен. Каталоги, которые связаны с другой файловой системой (например, в другом разделе жесткого диска), называются точками монтирования (mountpoints).

Обычно файловая система, расположенная на основном диске, монтируется в каталоге / (корневом каталоге пространства путевых имен). Полная установка ЗОСРВ «Нейтрино» автоматически монтирует все дополнительные дисковые файловые системы в каталоге /fs. Пример представлен на рис. 2.

Таким образом, если в системе на основе DOS для обращения ко второму разделу диска нужно набрать D:\, в системе ЗОСРВ «Нейтрино» вы можете обратиться ко второму разделу файловой системы QNX4 на первом жестком диске следующим образом: /fs/hd0-qnx4-2.

6_2.png
Рисунок 2. Точка монтирования — каталог /fs

Более подробные сведения о структуре типичного пространства путевых имен в ЗОСРВ «Нейтрино» см. в разделе "Где все хранится?" далее в этой статье.

Путевые имена, начинающиеся с точки

Когда вы выводите список каталога, утилита ls не показывает файлы и каталоги, имена которых начинаются с точки. Программы ставят перед именами конфигурационных файлов и каталогов точку, чтобы скрыть их. Поэтому такие файлы (как легко догадаться) называются скрытыми (hidden). Кроме особого отношения к скрытым файлам со стороны утилиты ls и некоторых других программ (таких как администратор файлов pfm оболочки Photon), скрытые файлы больше ничем не отличаются от любых других. Для того чтобы отобразить список всех файлов, включая скрытые, используйте команду ls -a.

Расширения

Расширение имени файла (т.е. что-то в конце имени файла) указывает программам и пользователю, какой тип данных содержится в файле. В файловой системе QNX4 (собственной дисковой файловой системе ЗОСРВ «Нейтрино») расширения просто являются обычной частью имени файла и могут иметь любую длину, учитывая однако, что общий размер имени файла не должен превышать 505 байт.

В большинстве случаев расширения файловых имен являются просто условными наименованиями, однако некоторые утилиты работают по-разному в зависимости от расширения. Список наиболее часто используемых в системе ЗОСРВ «Нейтрино» расширений приведен в подразделе "Расширения файловых имен" далее в этой статье.

Отображение пространства путевых имен

Вы могли заметить, что мы говорим о файлах и каталогах так, будто они, скорее, "появляются" в своих родительских каталогах, чем находятся в них. Это связано с тем, что в ЗОСРВ «Нейтрино» пространство имен файлов является виртуальным и определяется не только файловой системой, которая находится на носителе, смонтированном в корневой каталог, но и путями и псевдонимами путевых имен, зарегистрированными администратором процессов.

Рассмотрим, например, небольшую часть пространства путевых имен (рис. 3).

6_3.png
Рисунок 3. Фрагмент пространства путевых имен

В типичной дисковой системе на основе ЗОСРВ «Нейтрино» каталог / отображается в корневом каталоге файловой системы на разделе физического жесткого диска. Эта файловая система на диске в действительности не содержит каталог /dev — он существует виртуально и регистрируется администратором процессов. В свою очередь имя файла ser1 также не существует в дисковой файловой системе — оно было назначено драйвером последовательного порта.

Эта особенность позволяет создавать виртуальные объединения каталогов (directory union). Это происходит, когда несколько администраторов ресурсов получают файлы, находящиеся в общем каталоге в пространстве путевых имен.


Note: Чтобы система была более удобной в обслуживании, рекомендуется создавать как можно меньше объединений каталогов.

Правила образования имен файлов

ЗОСРВ «Нейтрино» поддерживает ряд файловых систем, обладающих различными возможностями и имеющих различные правила для формирования допустимых файловых имен. Более подробные сведения о файловых системах можно найти в разделе Файловые системы, а в Системные требования и лимиты — сведения об ограничениях системы.

Файловая система QNX4 — это обычная дисковая файловая система, которую использует ЗОСРВ «Нейтрино». В этой файловой системе имена файлов могут иметь длину не более 48 байт, однако вы можете расширить их до 505 байт (см. Имена файлов). Отдельные байты в имени файла могут иметь любое значение, кроме следующих (все значения — в шестнадцатеричной форме):

Если для представления международных символов вы используете кодировку UTF-8, предельная длина имени файла будет меньше, в зависимости от использования символов в расширенном диапазоне.

С помощью кодировки UTF-8 вы можете использовать международные символы в именах файлов. Если вы используете оконное окружение Photon microGUI, это делается прозрачным образом (вы можете ввести необходимые символы непосредственно с клавиатуры, и они корректно отобразятся в администраторе файлов Photon). Имена файлов, содержащие символы UTF-8, как правило, невидимы в командной строке.

Для отображения международных символов вы также можете использовать такие наборы символов, как ISO-Latin1 и набор символов для ПК. Однако отображение этих 8-битовых символов будет зависеть от установок вашего дисплея; кроме того, они могут выглядеть не так, как вы ожидаете, в оболочке Photon и в других операционных системах, которые получают доступ к этим файлам через сеть.

Большинство других операционных систем, включая Microsoft Windows, поддерживает символы UTF-8/Unicode, и их файловые имена выводятся корректно в среде Photon microGUI. Имена файлов из более старых версий Microsoft Windows могут быть закодированы с использованием 8-битовых символов из различных кодовых страниц. Файловая система DOS в ЗОСРВ «Нейтрино» может перевести эти имена файлов в кодировку UTF-8, но для этого необходимо сообщить системе, какую кодовую страницу использовать, посредством соответствующей опции в командной строке.


Note: Все дисковые файловые системы ЗОСРВ «Нейтрино» за исключением fs-qnx4.so — т.е. fs-cd.so, fs-dos.so, fs-ext2.so, Power-safe ( fs-qnx6.so) и fs-udf.so — используют для представления файловых имен кодировку UTF-8; попытка задать в этих файловых системах имя файла не в кодировке UTF-8 будет неуспешной (с ошибкой EILSEQ).

Где все хранится?

Файловая система ЗОСРВ «Нейтрино», принятая по умолчанию, в основном отвечает стандарту на структуру каталогов файловой системы (Filesystem Hierarchy Standard), однако мы не заявляем о полной совместимости с ним. Данный стандарт описывает, где должны размещаться файлы и каталоги в UNIX-подобных операционных системах. Более подробную информацию можно найти на сайте: http://www.pathname.com.


Note: Пространство путевых имен в ЗОСРВ «Нейтрино» чрезвычайно гибкое, поэтому вы можете по-разному конфигурировать вашу систему.

В данном разделе описывается содержание каталогов, изображенных на рис. 4.

6_4.png
Рисунок 4. Иерархия каталогов

/

Каталог / является корневым каталогом пространства путевых имен, обычно здесь располагается файловая система вашего основного жесткого диска или флэш-памяти. В файловой системе QNX4 этот каталог содержит следующие файлы:

/.altboot
альтернативный образ ОС, который загружается, если во время начальной загрузки вы нажали клавишу <Esc>;
/.bitmap
системный файл, содержащий битовую карту, отображающую области диска, используемые файловой системой. Каждый блок представляется одним битом. Если бит установлен, значит, файловая система использует соответствующий блок. Для предотвращения порчи диска вам необходимо следить за целостностью этого файла. После неожиданного выключения электропитания запустите утилиту chkfsys, которая просмотрит всю файловую систему, проверит содержание файла и при необходимости скорректирует его. Более подробные сведения см. Файловая система QNX4, а также в описании утилиты chkfsys
/.boot
в загружаемой файловой системе Power-Safe ( fs-qnx6.so) это каталог, содержащий образы ОС, которые могут загружаться вторичным загрузчиком при начальной загрузке системы. В загружаемой файловой системе QNX4 ( fs-qnx4.so) это файл, содержащий основной образ ОС. Более подробные сведения см. в разделе Управление запуском ЗОСРВ «Нейтрино»;
/.diskroot
файл, указывающий, какую из файловых систем QNX4 монтировать в качестве корневого каталога /. Более подробные сведения см. в разделе Управление запуском ЗОСРВ «Нейтрино»;
/.inodes
содержит дополнительные данные, указывающие на дополнительные блоки индексных дескрипторов, требуемые для файлов, занимающих более одного экстента (т.е. более одной непрерывной последовательности блоков на дисковом устройстве). Более подробные сведения см. в Файловая система QNX4. Корневой каталог / также содержит каталоги, характерные для используемой платформы (например, mipsle, ppcbe, x86), а также каталоги, перечисленные в последующих разделах.

/bin

Каталог /bin содержит двоичные файлы базовых утилит, таких как chmod, ls и ksh. Чтобы узнать основной синтаксис утилиты, наберите в командной строке use имя_утилиты.

/boot

Каталог /boot содержит файлы и каталоги, используемые для создания загружаемых образов ОС (образные файловые системы). Образные файловые системы содержат компоненты ОС, исполняемые файлы и файлы данных, которые должны присутствовать и запускаться сразу же после загрузки системы. Общие сведения по этой теме см. в описании утилиты mkifs.

Этот каталог содержит:

/boot/build/
каталог с файлами, используемыми утилитой mkifs для построения образов ОС. Для стандартной системы ЗОСРВ «Нейтрино» на основе архитектуры x86 файлами построения образа являются qnxbase.build и qnxbasedma.build;
/boot/fs/
как это обычно принято, мы используем этот каталог для сохранения образных файловых систем, построенных при помощи утилиты mkifs. Для того чтобы выполнить загрузку с одного из образов, необходимо сначала скопировать его в каталог /.boot на загрузочном устройстве в файловой системе QNX4;
/boot/sys/
Каталог с начальным загрузчиком и кодом начальной загрузки. Это один из путей, который просматривает утилита mkifs при попытке обнаружить компоненты, указанные в файле компоновки.

/dev

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

/dev/cdn
блочное устройство CD-ROM (сведения о драйверах см. в описании devb-*);
/dev/conn
консольные tty-устройства с выводом в текстовом режиме (см. описание devc-con);
/dev/console
устройство, используемое для диагностических сообщений. В полной системе на основе архитектуры х86 это устройство предназначено только для записи и управляется утилитой slogger. Файлы построения образа для встраиваемых систем могут создавать ссылку от этого пути к другому устройству, такому как последовательный порт (см. описание утилиты slogger);

/dev/fdn
блочное устройство флоппи-диска (сведения о драйверах см. в описании утилиты devb-fdc);

/dev/hdn
блочное устройство жесткого диска; данные, представляющие весь диск целиком, охватывающие все его разделы (см. описание драйверов devb-*);

/dev/hdntn
блочное устройство раздела жесткого диска; данные в этих устройствах являются подмножеством данных, представленных соответствующим файлом hdn (см. описание драйверов devb-*);

/dev/io-net/
каталог, принадлежащий утилите io-net и управляемый ею. В этом каталоге находятся файлы, относящиеся к сетевым устройствам локальных сетей. Программы на С могут применять к этим файлам функции devctl() для обеспечения взаимодействия с драйвером, например для получения статистики драйвера;

Note: В каталоге /dev/io-net/ свои элементы создают только унаследованные драйвера io-net; оригинальные драйвера io-pkt-* этого не делают.

/dev/mem
устройство, представляющее всю физическую память;
/dev/mq
/dev/mqueue
пространство путевых имен, в котором появляются записи об очередях сообщений;
/dev/null
"мусорная корзина", в которую вы можете направлять данные. Данные удаляются;
/dev/parn
параллельные порты, например для принтеров (более подробные сведения о конфигурировании см. в описании stty; о драйверах — в описании утилиты devc-par;
/dev/pci
это устройство, создаваемое сервером PCI, дает возможность программам взаимодействовать с этим сервером (см. описание утилит pci-*);
/dev/phfont
создается сервером шрифтов Photon, либо утилитой io-graphics с использованием библиотеки phfont.so, либо phfont в качестве отдельного процесса. Этот файл дает возможность программам взаимодействовать с сервером шрифтов (см. описание утилит io-graphics и phfont);
/dev/photon
специальный файл, который используется программами для присоединения к серверу Photon, запущенному на данной машине. Более подробные сведения см. в Photon;
/dev/pipe
принимается администратором неименованных программных каналов ( pipe). Присутствие этого файла говорит другим программам (например, сценарию начального запуска, встроенному в образ ОС), что администратор неименованных программных каналов (Pipe manager) выполняется успешно;
/dev/pty[p-zP-T][0-9a-f]
управляющая сторона псевдотерминальной пары устройств. Псевдотерминальные устройства имеют имена, включающие один символ (p-z или P-T), после которого следует шестнадцатеричная цифра, что позволяет иметь до 256 устройств. См. описание утилиты devc-pty;
/dev/random
устройство для получения случайных данных (см. описание утилиты random);
/dev/sem
пространство путевых имен, в котором появляются записи об именованных семафорах;
/dev/sern
последовательные порты. Информация по конфигурированию приведена в описании утилиты stty, информация о драйверах — в описании утилит devc-ser*;
/dev/shmem/
содержит файлы, представляющие области разделяемой памяти системы (также иногда используемые для файлов, отображаемых в памяти). Более подробные сведения см. в Работа с файловыми системами;
/dev/slog
устройство, управляемое утилитой slogger и используемое для чтения или записи системного журнала. Для чтения информации из журнала используйте команду sloginfo /dev/slog. Более подробные сведения см. в описании утилит slogger и sloginfo;
/dev/socket/
каталог, управляемый стеком TCP/IP, входящим в модуль io-pkt-*. Этот каталог содержит путевые имена, по которым приложения взаимодействуют со стеком. Более подробные сведения см. в Сетевой стек и протоколы TCP/IP;
/dev/text
этот файл управляется утилитой procnto-*. Текст, записанный на это устройство, выводится через процедуры отладочного вывода начального загрузчика, указанные в коде начального запуска. Результат варьируется в зависимости от процессорной платы. На стандартном ПК (с BIOS) по умолчанию выполняется вывод на консоль ПК. Более подробные сведения см. в описании startup-*;
/dev/tty
виртуальное устройство, принадлежащее администратору процессов (procnto), которое позволяет определять управляющее терминальное устройство, связанное с сеансом любого процесса, который открывает данный файл. Это полезно для программ, которые уже закрыли свой стандартный поток ввода, вывода или ошибок, но позже возникла необходимость вывода на терминальное устройство;
/dev/tty[p-zP-T][0-9a-f]
исполнительная сторона соответствующего файла /dev/pty[p-zP-T][0-9a-f]. Управляемая программа обычно использует один из этих файлов для своих стандартных потоков ввода, вывода или ошибок;
/dev/zero
обеспечивает бесконечный поток байтов, имеющих нулевое значение.

/etc

Каталог /etc содержит специфичные системные файлы и программы, используемые для управления и конфигурирования, включая следующие:

/etc/acl.conf
определяет разрешенные операции на заданном контексте SNMP (см. описание утилиты /etc/acl.conf);
/etc/autoconnect
сценарий автоматического соединения и конфигурации TCP/IP (см. описание утилиты /etc/autoconnect);
/etc/bootptab
конфигурационный файл сервера протокола сетевой загрузки (см. описание утилиты /etc/bootptab);
/etc/config/
каталог, содержащий системные конфигурационные файлы, такие как файл ttys, который используется утилитой tinit для конфигурирования терминальных устройств;
/etc/context.conf
определения контекста для SNMPv2 (см. описание утилиты /etc/context.conf;
/etc/country
создается утилитой phlocale. Используется приложениями для настройки применительно к той стране, в которой используется система;
/etc/default
каталог, содержащий принятые по умолчанию конфигурационные файлы, прежде всего для средств TCP/IP;
/etc/dhcpd.conf
протокол динамического конфигурирования узла (Dynamic Host Configuration Protocol, DHCP) (см. описание утилиты /etc/dhcpd.conf;
/etc/ftpd.conf
определяет опции конфигурации для ftpd, которые используются после аутентификации соединения (см. описание утилиты /etc/ftpd.conf);
/etc/ftpusers
определяет пользователей, которые могут иметь доступ к машине через протокол FTP (см. описание утилиты /etc/ftpusers;
/etc/group
база данных групп пользователей;
/etc/hosts
справочная база имен хостов; см. также пункт /etc/resolv.conf далее в этом списке и описание утилиты /etc/hosts;
/etc/inetd.conf
конфигурационный файл суперсервера Интернета, определяющий сервисы Интернета, которые утилита inetd динамически запускает и прекращает (см. описание утилиты /etc/inetd.conf;
/etc/mib.txt
определяет формат для задания имен переменных для утилит SNMP (см. описание утилиты /etc/mib.txt);
/etc/motd
содержит ASCII-сообщение, которое может быть выведено при входе пользователей в систему, если /etc/profile сконфигурирован для этого. Принятый по умолчанию /etc/profile выводит этот файл, только если файл /etc/motd имеет более позднюю дату, чем дата последнего входа в систему, определяемая по времени последней модификации файла $HOME/.lastlogin. Более детальная информация приведена в описании /etc/profile;
/etc/networks
файл базы данных сетевых имен. Более детальная информация приведена в описании утилиты /etc/networks;
/etc/nsswitch.conf
конфигурационный файл для переключения между службами имен. Для получения дополнительных сведений см. описание /etc/nsswitch.conf .
/etc/opasswd
резервная копия файла /etc/passwd, создаваемая перед его последним изменением утилитой passwd;
/etc/oshadow
резервная копия файла /etc/shadow, создаваемая перед его последним изменением утилитой passwd;
/etc/party.conf
конфигурационный файл для SNMPv2. Более детальная информация приведена в описании /etc/party.conf;
/etc/passwd
этот файл определяет учетные записи для входа в систему. Более детальная информация приведена в разделах Вход в систему, выход из нее и завершение работы и Управление учетными записями пользователей, а также в описании утилит passwd, login, phlogin2-ksz и phlogin2;
/etc/photon/
каталог, содержащий некоторые конфигурационные файлы, относящиеся к оконному окружению Photon, включая следующие:
pterm
конфигурационные файлы для утилиты pterm;
shelf
каталог, содержащий принятый по умолчанию конфигурационный файл для системной панели ( shelf) и принятый по умолчанию формат меню Launch;
shells/
дополнительный каталог, в который вы можете помещать конфигурационные файлы для phlogin2-ksz или phlogin2;
wm
конфигурационные файлы для администратора окон pwm. Более подробные сведения см. Графическое оконное окружение Photon microGUI;
/etc/printers/
каталог, содержащий файлы printertype.cfg и файл fontmap, которые используются утилитой phs-to-ps. Более детальная информация приведена в подразделе Печать с помощью утилиты spooler;
/etc/profile
сценарий профиля начальной загрузки, выполняемый командным интерпретатором при входе в систему; выполняется до $HOME/.profile;
/etc/profile.d/
каталог, в котором принятый по умолчанию сценарий /etc/profile ищет сценарии для выполнения при входе пользователя в систему. Сценарий /etc/profile запускает каждый сценарий в данном каталоге, который соответствует *.${SHELL##*/}. Например, если переменная окружения SHELL имеет значение /bin/sh, то этот сценарий запускает сценарии, соответствующие *.sh;
/etc/rc.d/
каталог, в котором обычно хранятся локальные файлы инициализации системы. Более детальная информация приведена в описании /etc/system/sysinit;
/etc/resolv.conf
конфигурационный файл распознавателя (см. приведенное ранее описание каталога /etc/hosts, а также описание утилиты /etc/resolv.conf);
/etc/skel/
каталог, в котором располагается принятая по умолчанию версия .profile. При добавлении нового пользователя этот файл копируется в домашний каталог пользователя. Более детальная информация приведена в описании /etc/default/passwd в документации к passwd, а также в описании .profile;
/etc/system/
каталог, включающий файлы и каталоги, используемые при загрузке системы, в том числе:
/etc/system/sysinit
основной сценарий для инициализации системы;
/etc/system/config/nophoton
файл, указывающий на запрет запуска Photon;
/etc/system/config/useqnet
файл, указывающий на запуск Qnet (более детальная информация приведена в Прозрачная распределенная сеть Qnet);
/etc/system/enum
расположение конфигурационных файлов для программы распознавания устройств (см. также Управление запуском ЗОСРВ «Нейтрино»).
/etc/timezone/
каталог, в котором утилита phlocale ищет список возможных временных зон (см. Задание часового пояса).

/fs

Дополнительные файловые системы монтируются в каталоге /fs. Более подробные сведения см. в Работа с файловыми системами, а также в описании devb-* и mount. Данный каталог может включать:

/fs/cdn/
файловые системы CD-ROM;
/fs/fdn/
файловые системы флоппи-дисков;
/fs/hdn-тип[-число]/
файловые системы на разделах жесткого диска.

/home

Здесь находятся домашние каталоги обычных пользователей. Имя домашнего каталога часто совпадает с именем пользователя.

/lib

Каталог, содержащий разделяемые библиотеки, необходимые для работы программ (имя_файла.so), а также статические библиотеки, используемые в процессе разработки (см. также /usr/lib и /usr/local/lib). Каталог /lib включает в себя:

/lib/dll/
содержащий дополнительные разделяемые библиотеки, которые служат в качестве драйверов и служб ОС (например, администраторов файловых систем и т.п.). Подробная информация по конкретным разделяемым объектам в каталоге /lib/dll приведена в соответствующих пунктах в справочнике по утилитам.

/proc

Этот виртуальный каталог, принадлежащий администратору процессов ( procnto), содержит информацию о процессах и конфигурации пространства путевых имен.

Каталог /proc содержит подкаталог для каждого процесса. Идентификатор процесса используется в качестве имени каталога. Каждый из этих каталогов включает в себя запись (as), которая определяет адресное пространство процесса. Различные утилиты используют эту запись для получения информации о процессе. Каталог /proc также содержит:

/proc/boot/
файловой системы, включающий в себя образ начальной загрузки.
/proc/dumper
специальный файл, в который отправляется сообщение при аварийном прекращении процесса;
/proc/self/
адресное пространство процесса, производящего запрос;
/proc/mount/
точки монтирования пространства путевых имен.
/proc/qnetstats
файл, регистрируемый в /proc модулем lsm-qnet.so при использовании протокола Qnet. Если открыть этот файл и выполнить чтение из него, то ресурс-менеджер Qnet вернет текущую статистику по использованию данного протокола.

Note: Когда вы выводите список каталога /proc, список /proc/mount не отображается, однако вы можете отдельно вывести список каталога /proc/mount.

/root

Каталог /root является домашним каталогом пользователя root.

/sbin

Этот каталог содержит важные двоичные файлы системы, включая:

Многие из этих файлов используются при загрузке системы.

/tmp

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

/usr

Каталог /usr содержит предназначенные только для чтения разделяемые данные. Этот каталог включает в себя:

/usr/bin/
каталог, содержащий большинство пользовательских команд (например, diff, errno и wc);
/usr/help/
каталог, содержащий документацию (в каталоге product) и стандартные изображения (в каталоге lib/images). Более детальная информация приведена в Обозреватель справки и в описании утилиты helpviewer;
/usr/include/
верхний уровень каталогов, содержащих заголовочные файлы C и C++. Этот каталог включает в себя каталог sys, каталоги, специфичные для платформы, и другие каталоги;
/usr/info/
документация для различных утилит;
/usr/lib/
объектные файлы, библиотеки и внутренние двоичные файлы, которые не должны выполняться непосредственно или в сценариях. Эти библиотеки путем компоновки используются при разработке программ;
/usr/libexec/
каталог, который может содержать системные сервисы и системные утилиты. Как привило, они выполняются только по запросу других программ;
/usr/local/
каталог, в котором администратор системы может устанавливать локальное программное обеспечение. Изначально этот каталог пустой;
/usr/man/
файлы справочной системы man-страниц для различных утилит;
/usr/photon/
верхний уровень каталогов, содержащих исполняемые файлы, файлы данных и др., связанные с оконным окружением Photon;
/usr/sbin/
необязательные системные двоичные файлы (например, cron, dumper и nicinfo);
/usr/share/
данные, не зависящие от архитектуры, например пиктограммы, фоны и различные программы gawk;
/usr/src/
каталог для исходного текста.

/var

Каталог /var содержит различные файлы данных, в том числе кэш-файлы, файлы блокировок, журнальные файлы, а также следующие каталоги:

/var/dumps
каталог, в котором dumper сохраняет все дампы, созданные в результате аварийного завершения программ.

Владение файлами и права доступа

Каждый файл и каталог относится к определенному идентификатору пользователя или идентификатору группы и имеет набор прав доступа (также называемых режимами — modes). Для управления владением и правами доступа к ним используются следующие утилиты.

Действие Утилита
Задать права доступа для файла или каталога chmod
Изменить владельца (и при необходимости группу) для файла или каталога chown
Изменить группу для файла или каталога chgrp


Note: Вы можете изменить права доступа (permission) или владения (ownership) файла или каталога, только если вы являетесь его владельцем или вошли в систему как пользователь root. Если вы хотите изменить как права доступа, так и права владения, следует сначала изменить права доступа. После того как вы назначите права владения другому пользователю, вы не сможете изменить права доступа.

Права доступа подразделяются на следующие категории:

Например, если вы запросите список содержимого домашнего каталога (с помощью ls -al), то можете получить такой результат:

total 94286
drwxr-xr-x 18 barney techies 6144 Sep 26 06:37 ./
drwxrwxr-x 3 root root 2048 Jul 15 07:09 ../
drwx------ 2 barney techies 4096 Jul 04 11:17 .AbiSuite/
-rw-rw-r-- 1 barney techies 185 Oct 27 2000 .Sig
-rw------- 1 barney techies 34 Jul 05 2002 .cvspass
drwxr-xr-x 2 barney techies 2048 Feb 26 2003 .ica/
-rw-rw-r-- 1 barney techies 320 Nov 11 2002 .kshrc
-rw-rw-r-- 1 barney techies 0 Oct 02 11:17 .lastlogin
drwxrwxr-x 3 barney techies 2048 Oct 17 2002 .mozilla/
drwxrwxr-x 11 barney techies 2 048 Sep 08 09:08 .ph/
-rw-r--r-- 1 barney techies 254 Nov 11 2002 .profile
drwxrwxr-x 2 barney techies 4096 Jul 04 09:06 .ws/
-rw-rw-r-- 1 barney techies 3585 Dec 05 2002 123.html

Первая колонка представляет собой набор прав доступа. Буква d впереди указывает на то, что данный элемент является каталогом (см. раздел "Типы файлов" ранее в этой статье).

Вы также можете использовать восьмеричные числа для указания режимов (см. описание утилиты chmod в справочнике по утилитам).

Команды setuid и setgid

Для того чтобы некоторые программы (например, passwd) работали корректно, они должны выполняться от имени определенного пользователя:

$ which -l passwd
-rwsrwxr-x 1 root root 21544 Mar 30 23:34 /usr/bin/passwd

Заметим, что третий символ в правах доступа владельца — s. Этот символ обозначает команду setuid() (от англ. set user ID — установить идентификатор пользователя). Когда вы запускаете утилиту passwd, эта программа выполняется как владелец файла (т.е. root). Символ S означает, что бит setuid() для данного файла установлен, а бит выполнения – не установлен.

Вы также можете найти некоторые команды setgid() (от англ. set group ID — установить идентификатор группы), которые выполняются с тем же идентификатором группы, что и у владельца файла, но не с идентификатором пользователя-владельца. Если атрибут setgid() установлен для каталога, то содержащиеся в этом каталоге файлы будут иметь идентификатор группы каталога, а не идентификатор создателя файла.

Эта схема часто применяется для областей спулинга, таких как /usr/spool/mail, которой владеет группа mail и для которой установлен соответствующий атрибут setgid(), поэтому программы, выполняющиеся в качестве группы mail, могут вносить изменения в этом каталоге, но его файлы по-прежнему принадлежат своим обычным владельцам.


Note: Если вы изменяете владельца исполняемого файла, имеющего бит setuid(), то, если вы не зарегистрированы в системе как root, бит setuid() сбрасывается. Аналогичным образом, если вы изменяете группу программы, имеющей бит setgid(), то этот бит сбрасывается, если вы не root.

При выполнении утилит mkefs, mketfs и mkifs в среде Windows невозможно получить из параметров файла атрибуты прав доступа на выполнение (x), setuid() ("set user ID") или setgid() ("set group ID"). Для того чтобы определить эти права доступа явным образом, используйте атрибут perms. Для корректного определения прав владения, возможно, понадобится использование атрибутов uid и gid. Сведения о том, необходима ли установка битов setuid() или setgid() для той или иной утилиты, можно найти в их описании.



Warning: Программы с битами setuid() и setgid() могут привести к возникновению проблем безопасности. Если вы установили эти биты, убедитесь в том, что только владелец имеет права на запись к этим программам и что несанкционированный пользователь не может ими воспользоваться, особенно если их владельцем является root.

Sticky-бит

Sticky-бит — это право доступа, связанное с исполняемыми файлами и каталогами.

Если третий символ в наборе прав доступа — t (например, r-t), это означает, что установлены как sticky-бит, так и право на исполнение, тогда как символ T указывает на то, что установлен только sticky-бит.

Принятые по умолчанию права доступа к файлу

Используйте команду umask для задания маски прав доступа для новых файлов. По умолчанию принята маска 002, поэтому все новые файлы имеют права доступа на чтение и запись для пользователя (т.е. владельца файла) и всех остальных членов группы этого пользователя, а также права доступа на чтение для всех остальных пользователей. Если вы хотите удалить права доступа на чтение и запись для других пользователей, добавьте следующую команду к вашему профилю .profile:

umask 006

Если вы являетесь администратором системы и хотите, чтобы это изменение было применено ко всем пользователям, измените установку umask в /etc/profile. Более подробные сведения о профилях можно найти в Настройка параметров окружения и оболочки.

Расширения файловых имен

В таблице ниже приведены некоторые наиболее часто встречающиеся расширения имен файлов, используемые в ЗОСРВ «Нейтрино».

Расширение Описание Соответствующие программы/утилиты
.1 Текст формата Troff, например, из справочных man-страниц UNIX man и troff в репозитории продуктов третьих сторон
.a Библиотечный архив ar
.awk Сценарий Awk awk
.b Библиотека или программа арифметической утилиты bc (bench calculator) bc
.bat Командный файл MS-DOS Для использования в системах DOS. В ЗОСРВ «Нейтрино» выполняться не будет (см. Написание сценариев командного интерпретатора и описание утилиты ksh)
.bmp Графическое растровое изображение pv (программа просмотра в графической среде Photon)
.build Файл построения образа ОС mkifs
.c Исходный текст программы на C qcc, make (необходим комплект разработчика для ЗОСРВ «Нейтрино»)
.C, .cc, .cpp Исходный текст программы на C++ QCC, make (необходим комплект разработчика для ЗОСРВ «Нейтрино»)
.cfg Конфигурационные файлы различных форматов Различные программы разных форматов
.conf Конфигурационные файлы различных форматов Различные программы разных форматов
.css Каскадные стилевые таблицы (CSS) Используется в комплекте разработчика для ЗОСРВ «Нейтрино» для документации Eclipse
.def Файл определений C++ QCC, make (необходим комплект разработчика для ЗОСРВ «Нейтрино»)
.dll Динамически компонуемая библиотека MS Windows В ЗОСРВ «Нейтрино» не используется явным образом. Необходима для поддержки некоторых программ, выполняемых в ОС MS Windows (например, некоторых инструментов комплекта разработчика для ЗОСРВ «Нейтрино»). См. описание .so (разделяемые объекты) — эквивалента для ЗОСРВ «Нейтрино»
.gif Графическое изображение в формате GIF pv (программа просмотра в среде Photon)
.gz Сжатый файл gzip (для создания резервных копий и восстановления данных)
.h Заголовочный файл C qcc, make (необходим комплект разработчика для ЗОСРВ «Нейтрино»)
.htm Файл языка разметки гипертекста (HTML) для просмотра Web-страниц Web-браузер Qupzilla
.html Файл языка разметки гипертекста (HTML) для просмотра Web-страниц Helpviewer, Web-браузер Qupzilla
.ifs, .img Файловая система образов ЗОСРВ «Нейтрино»; обычно загружаемый образ mkifs
.jar Архив Java, состоящий из множества файлов Java (файлы классов и т.д.), сжатых в один файл Приложения Java
.jpg Графическое изображение в формате JPEG pv (программа просмотра в среде Photon)
.kbd Компилированные файлы определений клавиатуры среды Photon Photon, mkkbd
.kdef Исходные файлы определений клавиатуры среды Photon mkkbd
.kev События ядра, сгенерированные инструментированным ядром и используемые для профилирования системы ЗОСРВ «Нейтрино» целиком procnto-*-instr, tracelogger, traceprinter, комплект разработчика для ЗОСРВ «Нейтрино»
.mk Исходный текст make-файла, обычно используемый для рекурсивной компиляции make (комплект разработчика для ЗОСРВ «Нейтрино»)
.o Двоичный файл, полученный в результате компиляции исходного файла на языке C, C++ или ассемблере qcc, make (комплект разработчика для ЗОСРВ «Нейтрино»)
.pal Файл палитры Photon Photon
.pfr Файл Bitstream TrueDoc Portable Font Resource phfont
.phf Файл растровых шрифтов phfont
.S, .s Файл исходного кода на языке ассемблера Компилятор языка ассемблер GNU as (комплект разработчика для ЗОСРВ «Нейтрино»)
.so, .so.n Разделяемый объект qcc, make (комплект разработчика для ЗОСРВ «Нейтрино»)
.tar Архив на магнитной ленте tar (для создания резервных копий и восстановления данных)
.tar.gz, .tgz Сжатый архив на магнитной ленте gzip, tar (для создания резервных копий и восстановления данных)
.toc Файл содержания для программы Helpviewer helpviewer
.TTF Шрифты TrueType phfont
.txt Текстовый файл формата ASCII Множество текстовых редакторов, приложений и индивидуальных пользователей
.ttf Файл шрифтов TrueType phfont
.use Файл, содержащий краткую справку по использованию, включаемую в исполняемый файл программы, если эта информация не включена в исходный код make (комплект разработчика для ЗОСРВ «Нейтрино»)
.wav Звуковой WAVE-файл -
.xml XML-файл; различные области применения, в том числе документация IDE -
.zip Сжатый архивный файл gzip

Если вы не уверены в формате файла, используйте утилиту file:

file имя_файла

Устранение неполадок

Далее описаны основные проблемы с файлами, с которыми вы можете столкнуться.

я пытаюсь записать файл, но получаю сообщение "permission denied" ("доступ запрещен").
У вас нет прав доступа на запись для этого файла. Если вы являетесь владельцем (или root), вы можете изменить права доступа (см. раздел "Владение файлами и права доступа" ранее в этой статье).
я пытаюсь вывести список содержимого каталога, для которого имею право доступа, но получаю сообщение "permission denied" ("доступ запрещен").
Чтобы вывести список каталога, необходимо иметь права доступа на чтение и исполнение для данного каталога (см. подраздел "Владение файлами и права доступа" ранее в этой статье).
возникают проблемы с файлом, в имени которого есть пробел.
Командный интерпретатор разбирает командную строку и использует знак пробела для разбивки команды на лексемы (token). Если имя файла содержит пробел, необходимо заключить этот пробел в кавычки, чтобы командный процессор интерпретировал его буквально. Более подробные сведения об этом и других специальных символах см. в Применение кавычек со специальными символами.




Предыдущий раздел: перейти