Изучение принципов организации файловой системы ОС UNIX на примере QNX, страница 7

            }

      }

      else

      {

            printf ("Error: no file to open!\n");

      }

}

Собираем объектный файл.

$ cc -o shluzProg shluz.c

Запуск от пользователя, создавшего программу (проверка работоспособности программы).

$ ./shluzProg file_for_shluz

File file_for_shluz is opened.

it is file for programm Shluz.

File file_for_shluz closed.

Запуск без указания файла.

$ ./shluzProg

Error: no file to open!

Установка флага SUID.

$ chmod +s shluzProg

$ ls -l shluzProg

-rwsrwsr-x  1 gr40812_9 100            4912 Dec 01 15:53 shluzProg

Зайдем от имени другого пользователя.

$ login gr40811_9

Password:

Wed Dec  1 16:04:57 2010 on /dev/ttyp1

Last login: Wed Dec 1 15:56:10 2010 on /dev/ttyp1

edit the file .profile if you want to change your environment.

To start the Photon windowing environment, type "ph".

Попробуем открыть файл, не прибегая к помощи программы-шлюза.

$ cat file_for_shluz

file_for_shluz: Permission denied

Откроем файл с помощью программы-шлюза.

$ ./shluzProg file_for_shluz

File file_for_shluz is opened.

it is file for programm Shluz.

File file_for_shluz closed.

3.8. Утилитами  df, fstab получить информацию о ФС и ОС, установленных на компьютере.

Утилита df предоставляет информацию о количестве используемого и свободного дискового пространства. По умолчанию размеры представлены, как количество 512-байтных блоков, однако это может быть изменено: с ключом –k результат будет представлен в 1024-байтных блоках, а с ключом –h – в удобной для человека форме (килобайты, мегабайты, гигабайты).

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

Первая колонка указывает на специальные файлы устройств, с помощью которых и происходит обращение к ним (hd0 – для доступа к жесткому диску, hd0t179 – для доступа к разделу жесткого диска, cd0 – для доступа к cdrom, umass0 – для доступа к флешке, umass0t14 – для доступа к разделу флешки). Последний столбец указывает на точку монтирования, иначе говоря, куда нам следует зайти (в какой каталог), чтобы воспользоваться информацией, хранящейся на устройствах.

Файл /etc/fstab содержит информацию о смонтированных файловых системах. Он доступен для чтения для всех пользователей, однако для записи доступен только для суперпользователя. Каждая строка описывает файловую систему: местонахождение специальных файлов устройств, являющихся интерфейсом доступа к периферийным устройствам; точка монтирования; тип файловой системы; опции. Опции перечисляются через запятую и по крайней мере содержат следующую информацию: rw (для чтения и для записи) или ro (только для чтения).

В используемой версии QNX данный файл не был найден. Возможно, он и присутствует, но не виден даже для root. Аналогичный файл, но с другим названием найти не удалось.

3.9. Проанализировать все возможные способы формирования ссылок (ln, link, cp и т.д.) и подтвердить экспериментально. Предложить скрипт, подсчитывающий и перечисляющий все символические ссылки на файл в разных каталогах.

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

Пример создания жесткой ссылки в текущем каталоге и подкаталоге.