Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО отчёт №2.docx
Скачиваний:
37
Добавлен:
16.04.2015
Размер:
60.58 Кб
Скачать

7. Программа-шлюз

Текст программы:

#include <stdio.h>

main ( int argc, char *argv [] )

{

if (argc>1) {

FILE *f;

f=fopen(argv[1],"r");

if (f) {

char str[64];

while ( fgets(str, sizeof(str), f) ) {

printf("%s", str);

}

fclose(f);

}

else printf("%s: File %s couldn't be open\n", argv[0], argv[1]);

}

else printf("%s: File was not specified\n", argv[0]);

}

Скомпилируем её стандартным компилятором в исполняемый файл gateway, сделаем администратора владельцем этого файла и установим атрибут SUID:

$ login root

Wed Dec 26 17:05:42 2012 on /dev/ttyp0

Last login: Wed Dec 26 16:52:50 2012 on /dev/ttyp0

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

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

# cd /home/dm/SPO/40811/Lab2

# cc gateway.c -o gateway

# chmod u+s gateway

# ls -l ./gateway

-rwsrwxr-x 1 root root 4520 Dec 26 17:07 ./gateway

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

# echo qwerty98765432 > /root/myfile.txt

# chmod 600 /root/myfile.txt

# ls -l /root/myfile.txt

-rw------- 1 root root 15 Dec 26 17:14 /root/myfile.txt

Попробуем прочесть /root/myfile.txt от имени обычного пользователя:

# login dm

Wed Dec 26 17:18:33 2012 on /dev/tty

Wed Dec 26 17:18:33 2012 on /dev/tty

Last login: Wed Dec 26 17:18:33 2012

$ cat /root/myfile.txt

/root/myfile.txt: Permission denied

Теперь прочитаем его с помощью программы-шлюза gateway:

$ cd ./SPO/40811/Lab2

$ ./gateway /root/myfile.txt

qwerty98765432

8. Утилита df

Предназначена для получения информации о свободном дисковом пространстве. Синтаксис:

df [-ghknP] [device|directory|file]

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

# df -ghP

Filesystem Size Used Available Capacity Mounted on

/dev/hd0t179 7.9G 1.5G 6.4G 20% /

/dev/umass0t11 7.4G 6.5G 927M 88% /fs/usb0/

/dev/cd0 1.4G 1.4G 0 100% /fs/cd0/

/dev/umass0 7.4G 7.4G 0 100%

/dev/fd0 1.4M 1.4M 0 100%

/dev/hd0 8.0G 8.0G 0 100%

# df -g

/dev/hd0t179 /

Blocks: 8385880 total 6746489 avail [1024-byte blocks]

Files : 1048240 total 1025173 avail

Type : qnx6

Flags : 00000000 []

Option: sync=optional

/dev/umass0t11 /fs/usb0/

Blocks: 1956336 total 237239 avail [4096-byte blocks]

Files : 0 total 0 avail

Type : dos (fat32)

Flags : 00000020 [noatime]

Option: fsi=use

/dev/cd0 /fs/cd0/

Blocks: 740464 total 0 avail [2048-byte blocks]

Files : 0 total 0 avail

Type : cd (joliet)

Flags : 00000001 [rdonly]

Option:

/dev/umass0

Blocks: 15687680 total 0 avail [512-byte blocks]

Files : 0 total 0 avail

Type : blk-umass

Flags : 00000020 [noatime]

Option:

/dev/fd0

Blocks: 2880 total 0 avail [512-byte blocks]

Files : 0 total 0 avail

Type : blk-fd

Flags : 00000001 [rdonly]

Option:

/dev/hd0

Blocks: 16777216 total 0 avail [512-byte blocks]

Files : 0 total 0 avail

Type : blk-hd

Flags : 00000000 []

Option:

Рассмотрим первые 2 устройства:

  1. /dev/hd0t179 – название специального файла устройства, "hd0" говорит о том, что это жёсткий диск №0. После буквы t указан тип файловой системы. В следующем столбце указан размер диска, далее – сколько байт занято и сколько свободно, затем – какая часть диска занята в процентах. В последнем столбце указано имя точки монтирования. При отображении более детальной информации выводится количество всех блоков в устройстве, количество доступных блоков, размер блока (1024 байта). Тип файловой системы 179 соответствует ФС QNX6.

  2. /dev/umass0t11. "umass" говорит о том, что это USB-устройство для хранения данных. Тип файловой системы 11 соответствует ФС FAT32. Далее всё аналогично первому устройству.