- •Отчёт о лабораторной работе №2
- •1. Типы файлов
- •2. Жёсткие ссылки
- •3. Команда find
- •4. Команда od
- •5. Файлы /etc/passwd, /etc/shadow и утилита /usr/bin/passwd
- •6. Изменение прав доступа и владельца
- •7. Программа-шлюз
- •8. Утилита df
- •9. Способы формирования ссылок
- •10. Утилита file
- •11. Минимальные права доступа необходимые для выполнения наиболее часто используемых операций:
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 устройства:
/dev/hd0t179 – название специального файла устройства, "hd0" говорит о том, что это жёсткий диск №0. После буквы t указан тип файловой системы. В следующем столбце указан размер диска, далее – сколько байт занято и сколько свободно, затем – какая часть диска занята в процентах. В последнем столбце указано имя точки монтирования. При отображении более детальной информации выводится количество всех блоков в устройстве, количество доступных блоков, размер блока (1024 байта). Тип файловой системы 179 соответствует ФС QNX6.
/dev/umass0t11. "umass" говорит о том, что это USB-устройство для хранения данных. Тип файловой системы 11 соответствует ФС FAT32. Далее всё аналогично первому устройству.