
- •Тема 1. Основы Unix
- •Структура unix
- •Сравнение Windows 2000 и Unix
- •Сравнение FreeBsd и Linux
- •Командные интерпретаторы Unix
- •Тема 2. Команды интерпретатора
- •2.1 Команды работы с файловой системой
- •2.2 Создание ссылок
- •2.3 Конвейеры и перенаправление ввода-вывода
- •Тема 3. Сценарии
- •3.1 Редактирование исходных файлов
- •3.2 Работа с командным интерпретатором
- •3.3 Переменные
- •3.4 Взаимодействие с пользователем
- •3.5 Арифметические операции в сценариях
- •Тема 4. Операторы сценариев
- •4.1 Операторы цикла
- •4.2 Другие операторы
- •4.3 Арифметические операторы and и or
- •Код завершения
- •Файловые дескрипторы
- •Отладка сценариев
- •4.7 Запись команд
- •Использование специальных символов
- •Тема 5. Файловая система FreeBsd
- •Разделы жесткого диска
- •5.2 Файловые системы
- •Монтирование файловых систем
- •Блоки и индексные дескрипторы
- •5.5 Пользователи и группы
- •5.6 Права доступа к файлам и каталогам
- •5.7 Добавление и удаление учетных записей пользователей
- •5.8 Управление процессами
- •Тема 6. Работа с файлами в Unix
- •6.2 Файловые функции Unix
- •6.3 Пример программы для обработки файла
- •Тема 7. Межмашинное взаимодействие
- •7.1 Сокеты
- •7.2 Функции для программирования сокетов
- •Тема 8. Программирование процессов
- •8.1 Информация о процессах
- •8.2 Создание порожденного процесса
- •8.3 Программные каналы
- •Тема 9. Web и Ftp сервисы
- •9.1 Конфигурирование Web-сервера
- •9.2 Конфигурирование ftp-сервера
- •Подключение к Internet
5.2 Файловые системы
В Windows используется FAT, в Windows NT – NTFS, во FreeBSD – FFS (Fast File System) - старое название UFS (Universal FS), в Linux - Ext2FS.
В Windows каждому диску присваивается буква, в UNIX существует только одна общая структура каталогов, а все диски монтируются, как различные точки в ней.
Содержимое корневого каталога можно увидеть командой ls / .
Структура корневого каталога выглядит примерно так
bin dev home user
root etc sbin var
bin include lib ports
В bin находятся выполняемые файлы, скомпилированные со статическими библиотеками, root – начальный каталог пользователя с именем root, в dev хранятся файлы устройств, в etc – системные конфигурационные файлы, home – домашний каталог пользователей. В sbin находятся системные выполняемые файлы, скомпилированные со статистическими библиотеками, в usr – пользовательские файлы, в var – файлы, изменяющиеся в процессе работы ОС (log, spool и т.д.).
Команда df выдает информацию об используемом дисковом пространстве по разделам.
Команда du - более подробная, она рекурсивно выводит размер всех подкаталогов в текущем или указанном каталоге.
Монтирование файловых систем
Монтирование файловой системы BSD раздела ad1s1g выполняется, например, командой
mount /dev/ad1s1g /home .
Желательно, чтобы каталог при этом был пустым.
Для демонтирования используется
umount / home .
Если же на компьютере установлена еще и система Windows с файловой системой FAT, то раздел можно также смонтировать в систему BSD.
Пример
mount_msdosfs /dev/ad0s1 /mnt
Можно монтировать дискеты. Если это дискета DOS, команда может выглядеть так
mount_msdosfs /dev/fd0 /mnt .
Для компакт-диска
mount_cd9660 /dev/acd0c /mnt .
Перед демонтированием обязательно нужно выйти из смонтированной системы, в данном случае из каталога /mnt.
Проверка и восстановление файловой системы FFS выполняется утилитой fsck, это аналог ScanDisk в Windows.
Для отдельных пользователей можно установить квоты на используемое дисковое пространство (etc/rc.conf в BSD) .
Блоки и индексные дескрипторы
Дисковое пространство в BSD разбито на блоки размером 8192Б. Маленькие файлы хранятся в блоке вместе с другими файлами.
Если какой-то файл увеличивается и не помещается в блоке, система перемещает весь файл в новый блок. Т.о. файл любого размера занимает минимальное число блоков.
Индексный дескриптор – это структура данных, которая полностью описывает файл. Она содержит следующую информацию:
- тип файла;
- UID и GID владельца файла;
- размер файла;
- время последней модификации файла;
- номер индексного дескриптора;
- число блоков, выделенных файлу, а также указатели на эти блоки.
5.5 Пользователи и группы
В UNIX имеется два типа пользователей: обычный и root. root – единственный пользователь, свободный от ограничений.
Обычный пользователь имеет постоянное место для работы в системе – начальный каталог (обычно это /home/имя-пользователя)
Повысить свой статус до уровня root пользователь может с помощью команды su.
Команда
su имя-пользователя
позволяет на время стать другим пользователем. Если имя пользователя не задано, подразумевается root. Если эту команду применяет пользователь, отличный от root, команда запрашивает пароль (пользователя root).
FreeBSD не позволяет пользователю root регистрироваться на удаленном компьютере напрямую, это можно сделать через команду su. Т.о. наличие команды su повышает защищенность системы (злоумышленнику надо узнать два пароля) и позволяет переложить часть административных задач на других пользователей.
Чтобы иметь возможность запустить команду su, необходимо принадлежать к группе wheel.
Каждый пользователь входит в определенную группу. Часто она включает только его самого и носит его имя. Группы нужны для того, чтобы предоставить нескольким пользователям одинаковые права доступа к набору файлов или процессов.
Каждый файл или каталог принадлежит и пользователю и группе. Соответственно разные члены группы могут иметь разные права доступа к конкретному файлу.