В первой статье я упоминал про установку
FreeBSD, в этой статье продолжим: 

1. Краткий обзор
2. Виртуальные консоли и терминалы
3. Права доступа
4. Структура каталогов
5. Монтирование и размонтирование файловых систем

[1] Работать во FreeBSD можно разными способами.
Один из них — набор команд в текстовом
терминале. Как написано в handbook: "Используйте
этот способ, и вся гибкость и мощь систем UNIX
будет в ваших руках."

Если графическую систему Вы не настраивали
на автозапуск, то можно увидеть нечто вроде:

[..skip..]
FreeBSD/i386 (perenna.localdomain) (ttyv0)

login:

Отсюда мы можем узнать, что это консоль FreeBSD,
работающая на Intel или совместимом
процессоре x86 архитектуры. Имя машины "perenna"
и она входит в поддомен "localdomain". Еще
становится ясно, что это консоль "ttyv0".
Поскольку в системе могут работать
несколько людей, вход во FreeBSD
осуществляется при помощи цепочки имя-пароль.
В поле "login" вы должны ввести свое имя
пользователя, а затем в появившееся поле
"password" свой пароль. Войдя, вы увидите
сообщение дня (MOTD, или message of the day) за которым
последует командная строка (с символом #, $,
или %).

[2] FreeBSD многозадачная система, поэтому для
удобства пользователя, в ней реализованы
так называемые "виртуальные консоли".

Из handbook по FreeBSD:

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

Для переключения между консолями
зарезервированы специальные комбинации
клавиш. Вы можете использовать сочетания
Alt-F1, Alt-F2, до Alt-F8 чтобы переключаться между
различными виртуальными консолями в FreeBSD.

При переключении от одной консоли к другой,
FreeBSD заботится о сохранении и
восстановлении вывода на экран.
Результатом является "иллюзия"
наличия множества "виртуальных"
экранов и клавиатур, которые могут быть
использованы для ввода и запуска команд
FreeBSD. Программы, которые вы запускаете на
одной виртуальной консоли, не прекращают
выполнение когда консоль становится
невидимой. Они продолжают выполняться,
когда вы переключаетесь на другую
виртуальную консоль."

Чтобы настроить виртуальные консоли,
достаточно отредактировать файл /etc/ttys.
Давайте немного разберемся с данным файлом.
Выглядит он примерно так:

# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure

Возьмем первую не комментированную строку.

"ttyv0 "/usr/libexec/getty Pc" cons25 on secure"

Для русскоязычных юзверей поведаю такую
штуку. Исправьте строку на:

"ttyv0 "/usr/libexec/getty Pc" cons25r on secure"

и консолька "русифицируется" =)

О безопасности: если исправить " secure"
на " insecure", то система будет спрашивать
пароль на root даже при загрузке в
однопользовательском режиме. Но (!) не
спешите исправлять, т.к. если Вы забыли
пароль на root и переключились в single mode, то Вам
может обломиться.

[3] Из handbook по FreeBSD:

"FreeBSD является прямым потомком BSD UNIX и
основывается на некоторых ключевых
концепциях UNIX. В первую очередь это, конечно,
тот факт, что FreeBSD — многопользовательская
операционная система. Это означает, что
несколько пользователей могут работать
одновременно, решая различные задачи и
совершенно не мешая друг другу. На системе
лежит ответственность за правильное
разделение и управление такими ресурсами
как память, процессорное время,
периферийные устройства и прочее.

Многопользовательская среда предполагает
наличие механизма регулирования прав
доступа к любому ресурсу в системе.
Существует три типа прав доступа: на чтение,
запись и исполнение. Права сгруппированы
три по три, соответственно чтение/запись/выполнение
для владельца/группы/всех остальных.
Численное представление:

ЗначениеПрава доступаСписок файлов
каталога

0Ничего не разрешено—
1Нельзя читать и писать, разрешено
исполнять—x
2Нельзя читать и исполнять, разрешено
писать-w-
3Нельзя читать, разрешено писать и
исполнять-wx
4Разрешено читать, нельзя писать и
исполнятьr—
5Разрешено читать и исполнять, нельзя
писатьr-x
6Разрешено читать и писать, нельзя
исполнятьrw-
7Разрешено всеrwx "

Что бы посмотреть права на файл, можно к
команде ls добавлять параметр -l, т.е.
использовать "ls -l", для вывода полной
информации юзайте "ls -a".

Поскольку все устройства в данной системе
представлены в виде файлов в директории /dir,
то и права на их использование можно
регулировать, как и с файлами.

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

Из handbook по FreeBSD:

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

Существуют и другие права доступа, но они
как правило используются в особых случаях,
например, setuid-бит на выполняемые файлы и
sticky-бит на каталоги. За дополнительными
сведениями по этому вопросу обращайтесь к
chmod(1)."

Так же, для удобства пользователя, могут
быть использованы символические выражения.

Из handbook по FreeBSD:

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

ОпцияБукваЗначение
(кто)uПользователь (User)
(кто)gГруппа (Group)
(кто)oДругие (Other)
(кто)aВсе (All, «world»)
(действие)+Добавление прав
(действие)-Удаление прав
(действие)=Явная установка прав
(права)rЧтение (Read)
(права)wЗапись (Write)
(права)xВыполнение (Execute)
(права)tSticky бит
(права)sSUID или SGID
Эти значения используются командой chmod так
же как и раньше, но с буквами. Например, вы
можете использовать следующую команду для
запрета доступа других пользователей к FILE:

% chmod go= FILE

Для изменения более чем одного набора прав
можно применить список, разделенный
запятыми. Например, следующая команда
удалит права группы и «всех остальных» на
запись в FILE, а затем добавит права на
выполнение для всех:

% chmod go-w,a+x FILE "

[4] Опять же обращусь к handbook (без нее никуда =):

"Файловая система FreeBSD является ключевым
моментом в понимании устройства всей
системы. Самым важным понятием является,
несомненно, корневой каталог, обозначаемый
символом "/". Корневой каталог
монтируется самым первым на этапе загрузки
и содержит все необходимое, чтобы
подготовить систему к загрузке в
многопользовательский режим. Корневой
каталог также содержит точки монтирования
всех других файловых систем.

Точкой монтирования называется каталог,
который будет соответствовать корню
примонтированой файловой системы.
Стандартные точки монтирования включают /usr,
/var, /mnt и /cdrom. Эти каталоги обычно
перечислены в файле /etc/fstab, в котором
указаны файловые системы и их точки
монтирования. Большинство файловых систем,
описанных в /etc/fstab монтируются
автоматически из скрипта rc, если только для
них не указана опция noauto. Обратитесь к fstab за
дополнительной информацией о формате файла
/etc/fstab и различных опциях монтирования.

Полное описание иерархии файловой системы
есть в hier. Здесь же мы упомянем лишь
наиболее важные каталоги.

/ Корневой каталог файловой системы.
/bin/ Основные утилиты, необходимые для
работы как в однопользовательском, так и в
многопользовательском режимах.
/boot/ Программы и конфигурационные файлы,
необходимые для нормальной загрузки
операционной системы.
/boot/defaults/ Конфигурационные файлы с
настройками по умолчанию, используемые в
процессе загрузки операционной системы (см.
loader.conf).
/dev/ Файлы устройств (см. intro).
/etc/ Основные конфигурационные файлы
системы и скрипты.
/etc/defaults/ Основные конфигурационные файлы
системы с настройками по умолчанию (см. rc).
/etc/mail/ Конфигурационные файлы для систем
обработки почты (например, sendmail).
/etc/namedb/ Конфигурационные файлы для утилиты
named (см. named).
/etc/periodic/ Файлы сценариев, выполняемые
ежедневно, еженедельно и ежемесячно (см. cron
и periodic).
/etc/ppp/ Конфигурационные файлы для утилиты ppp
(см. ppp).
/mnt/ Пустой каталог, часто используемый
системными администраторами как временная
точка монтирования.
/proc/ Виртуальная файловая система,
отображающая текущие процессы (см. see procfs,
mount_procfs).
/root/ Домашний каталог пользователя root.
/sbin/ Системные утилиты и утилиты
администрирования, необходимые для работы
как в однопользовательском, так и в
многопользовательском режимах.
/stand/ Программы, необходимые для работы в
автономном режиме (например, при установке
системы).
/tmp/ Временный каталог (часто монтируется
как mfs; обычно содержимое этого каталога
теряется во время перезагрузки системы).
/usr/ Большинство пользовательских утилит и
приложений.
/usr/bin/ Пользовательские утилиты и
приложения общего назначения.
/usr/include/ Стандартные заголовочные файлы для
языка C.
/usr/lib/ Файлы стандартных библиотек.
/usr/libdata/ Файлы данных для различных утилит.
/usr/libexec/ Системные даемоны и утилиты (выполняемые
другими программами).
/usr/local/ Локальные пользовательские
приложения, библиотеки, и т.д. Также
используется по умолчанию коллекцией
портов. Внутри /usr/local иерархия каталогов
должна следовать hier для /usr. Исключение
составляют каталог man, который расположен
непосредственно в /usr/local, а не в /usr/local/share, и
документация портов, которая расположена в
share/doc/port.
/usr/obj/ Архитектурно-зависимые файлы и
каталоги, образующиеся в процессе сборки
системы из исходных текстов в /usr/src.
/usr/ports/ Коллекция портов FreeBSD (опционально).
/usr/sbin/ Системные утилиты и утилиты
администрирования (исполняемые
пользователем).
/usr/share/ Архитектурно-независимые файлы.
/usr/src/ Исходные тексты BSD и/или программ.
/usr/X11R6/ Утилиты, приложения и библиотеки X11R6 (X
Window System; необязательно).
/var/ Файлы журналов общего назначения,
временные, перемещаемые файлы и файлы
очередей.
/var/log/ Различные файлы системных журналов.
/var/mail/ Почтовые ящики пользователей.
/var/spool/ Файлы очередей печати, почты, и пр.
/var/tmp/ Временные файлы, которые необходимо
сохранять между перезагрузками
операционной системы.
/var/yp/ Карты (maps) NIS. "

[5] Файловые системы, перечисленные в /etc/fstab,
монтируются автоматически в процессе
загрузки (если, конечно, для них не указана
опция noauto).

Формат файла такой: "устройство /точка-монтирования
тип файловой системы опции частота дампов
порядок проверки"

Итак, тут:

устройство — имя устройства

точка монтирования — каталог (уже
существующий), куда следует смонтировать
файловую систему.

тип файловой системы — тип файловой системы,
который передается программе mount. FreeBSD юзает
ufs.

опции — например, rw для монтирования
файловой системы в режиме «чтение-запись»
или ro для режима «только чтение», за
которыми могут следовать и другие опции.
Довольно часто используется опция noauto,
чтобы не монтировать автоматически
файловые системы в процессе загрузки.

частота дампов — используется утилитой dump
для определения файловых систем, с которых
необходимо периодически снимать
специальные архивные копии.

порядок проверки — определяет порядок, в
котором следует проверять файловые системы.
Если файловую системы не нужно проверять,
этот параметр должен быть установлен в ноль.
Для корневой файловой системы установите
его в 1. Для всех остальных — 2 или больше.
Если две или более файловые системы имеют
одинаковое значение passno, fsck попытается
проверять их параллельно.

Для монтирования используется команда "mount",
для размонтирования "umount". Полные
сведения и ключи этих команд можно узнать
по:

#man mount

Оставить мнение

Check Also

На что способна ада. Делаем утилиту для детекта гипервизора на полузабытом языке

Лучше всего познавать язык на реальном проекте, поэтому, когда я решил поэкспериментироват…