Здесь можно указать ограничения, которые будут использованы по умолчанию для пользователей или групп. При этом можно также указать интервал времени (grace period), по истечении которого «мягкое» ограничение перейдет в «жесткое». Ограничения можно задать отдельно и для конкретного пользователя. Для этого выберите в меню программы User accounts→User accountsи укажите пользователя, для которого вы хотите задать ограничения (см. рис. 3.9).
Рис. 3.9. Определение квот для пользователя
По умолчанию используется значение Default, то есть для этого пользователя будут использованы такие же ограничения, как и для всех остальных. Значение No limit — без ограничения. Ограничения можно задавать отдельно и для разных файловых систем.
Для квотирования сетевой файловой системы (NFS) нужно установить quota на сервере, а на клиенте она не нужна. Клиент получит сведения об ограничениях с помощью rquotad, который должен быть установлен и запущен на сервере. Вам не нужно устанавливать флаги usrquota или grpquota для монтирования NFS-дисков. Вместо этого установите quota на своем файловом сервере и запустите на нем из rc-файла сервер rpc.rquotad.
3.7. Сценарий создания пользователей
В качестве завершения этой главы приведу обещанный мною сценарий добавления новых пользователей (см. листинг 3.2). Данный сценарий нужно поместить в каталог /sbin и сделать этот файл исполнимым:
chmod 711 /sbin/nu
# !/bin/bash
# nu (New User) — Сценарий добавления пользователей.
# Группа по умолчанию
GROUP=100
# Оболочка по умолчанию
SHELL=/bin/bash
# Префикс для домашнего каталога
HOME=/home
# Время окончания действия пароля (дни)
EXPIRE=30
# Минимальное количество дней до смены пароля
DAYS=0
# За 5 дней предупреждаем пользователя
WARN=5
WHOAMI=`/usr/bin/whoami`
if [ $WHOAMI!="root" ]; then
echo "Access violation."
exit 1
fi
echo –n "Enter new name: "
read USERNAME
echo –n "Enter full name: "
read FULLNAME
adduser –c "$FULLNAME" –d $HOME/$USERNAME –e $EXPIRE \
–g $GROUP –S $SHELL $USERNAME
passwd –n $DAYS –w $WARN $USERNAME
passwd $USERNAME
4
Файловая система Linux
4.1. Файлы и каталоги. Дерево каталогов
В свое время, при использовании DOS вводилось определение файла как поименованной области данных на диске — на то DOS и дисковая операционная система. В Linux понятие файла значительно расширено. Практически все, с чем вы имеете дело в Linux, является файлом. Команды, которые вы вводите с клавиатуры, — это файлы, которые содержат программы. Устройства вашего компьютера – это тоже файлы. Грубо говоря, файл — это последовательность битов, а жесткий диск — просто смесь нулей и единиц. Linux представляет биты так, как вам понятно, и в этом заключается одна из ее основных функций — управление файловой системой. Файловая система — способ организации и представления битов на жестком диске.
Большинство файловых систем Unix-подобных операционных систем сходны между собой. Файловая система Linux — ext2 (ext3) — очень похожа на файловую систему ufs. К основным понятиям файловых систем в мире unix относятся:
1. Блок загрузки (boot block).
2. Суперблок (superblock).
3. Индексный (информационный) узел (inode).
4. Блок данных (data block).
5. Блок каталога (directory block).
6. Косвенный блок (indirection block).
Блок загрузки содержит программу для первоначального запуска Unix.
В суперблоке содержится общая информация о файловой системе. В суперблоке также содержится информация о количестве свободных блоков и информационных узлов. Для повышения устойчивости создается несколько копий суперблока, но при монтировании используется только одна. Если первая копия суперблока повреждена, то используется его резервная копия.
В индексном (информационном) узле хранится вся информация о файле, кроме его имени. Имя файла и его дескриптор (номер информационного узла — inode) хранятся в блоке каталога. В информационном узле есть место только для хранения нескольких блоков данных. Если же нужно обеспечить большее количество, то в этом случае динамически выделяется необходимое пространство для указателей на новые блоки данных. Такие блоки называются косвенными. Для того, чтобы найти блок данных, нужно найти его номер в косвенном блоке.
Файловая система ext2 имеет следующую структуру (см. рис. 4.1):
1. Суперблок.
2. Описатель группы.