Developed by Denys Avramenko

Учебный курс. Установка и администрирование ОС Linux на серверах IBM System x: Часть 2


Статьи / Администрирование / Учебный курс. Установка и администрирование ОС Linux на серверах IBM System x: Часть 2
Дисковые устройства. Файловая система Linux. Управление дисковыми квотами. Использование разрешений для контроля доступа к файлам. Создание и изменение жестких и символических ссылок. Поиск системных файлов и перенос их в правильное местоположение.

Создание разделов и файловых систем

Описание

Соискатели должны уметь разбивать диски на разделы и создавать файловые системы на носителях, в частности, на жестких дисках. Эти навыки включают в себя подготовку разделов и создание файловых систем c использованием различных вариантов команды mkfs, в том числе ext2, ext3, reiserfs, vfat и xfs.

Ключевые слова, файлы и утилиты

fdisk
mkfs

Поддерживаемые Linux файловые системы

ext2: Устаревшая, но очень стабильная файловая система Linux.

Эффективна для файлов, размером больших чем ~2-3K.

ext3: Расширение ext2 с поддержкой журнала транзакций.

В файловой системе с поддержкой журнала добавляется новая структура, называемая "журнал".

Файловая система может быть преобразована между ext2 и ext3 как в одну, так и в другую сторону.

reiserfs: файловая система с поддержкой журнала транзакций.

Версия 3 данной файловой системы в 8-15 раз быстрее чем ext2 при работе с файлами небольшого размера. Следующая, четвертая версия должна также ускорить операции и с большими файлами.

XFS: файловая система с поддержкой журнала транзакций созданная SGI для разработанной ими Irix Unix и портированная в Linux. Предназначена для работы с большими файлами, вплоть до 9 ExaBytes (9'000'000'000 GigaBytes).

JFS: Еще одна файловая система с поддержкой журнала транзакций от IBM.

msdos: Файловая система FAT из MS-Windows.

Также поддерживаются специализированные файловые системы, такие как iso9660 для cd-rom или cramfs для сжатых дисков в оперативной памяти.

Создание разделов

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

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

Для чего необходимо деление на разделы?

Несколько файловых систем.

Упрощение созданий резервных копий данных.

Установка различных квот на разные разделы.

Применение опций монтирования "только для чтения" и других.

Возможные физические ограничения со стороны загрузчика.

IDE устройства

На PC для IDE устройств BIOS следует следующим соглашениям в именовании разделов:

Таблица 1. Правила именования IDE дисковPrimary Master /dev/hda Весь диск
/dev/hda1 Первый раздел
/dev/hda2 Второй раздел
Primary Slave /dev/hdb
Secondary Master /dev/hdc
Secondary Slave /dev/hde

Каждый жесткий диск может содержать максимум 4 первичных раздела или 3, если имеется расширенный раздел.

Максимальное число расширенных разделов – один на жесткий диск, вне зависимости от числа первичных разделов. Расширенному разделу присваивается следующий номер после последнего первичного раздела.

Максимальное число логических разделов на каждый жесткий диск – одиннадцать. Нумерация идет с 5 до 15.

SCSI диски

SCSI устройства именуются следующим образом:

Таблица 2. Правила именования SCSI дисковID1 /dev/sda Весь диск на первом ID
/dev/sda1 Первый раздел
ID2 /dev/sdb Весь диск на втором ID

Точно такая же схема именования применяется к устройствам, подключенным по IEEE1394 (Firewire) и USB.

После разбивки на разделы представляется возможным создать файловую систему на каждом разделе.

Древо файловой системы

Файловая система Linux имеет каталог верхнего уровня, называемый "корень" (/), где расположены все вложенные подкаталоги.

Подкаталоги могут быть как другими локальными разделами, так и удаленными разделами, доступными через сеть при помощи протокола NFS.

Стандарт Linux на иерархическую структуру файловой системы

Организация древа иерархической структуры файловой системы в дистрибутивах Linux основывается на документе под названием "Стандарт на Иерархию Файловой системы" (Filesystem Hierarchy Standard, FHS). FHS предполагает специальное назначение для определенных директорий древа файловой системы.

Следующие директории, или символические ссылки должны присутствовать в /.

Таблица 3. Обязательные каталоги для файловой системы LinuxКаталог Описание
bin Основные исполняемые файлы
boot Статические файлы загрузчика
dev Файлы устройств
etc Системные конфигурационные файлы узла
lib Основные разделяемые библиотеки и модули ядра
media Точки монтирования для съемных носителей
mnt Точки монтирования для временных файловых систем
opt Дополнительные пакеты приложений
proc Виртуальная файловая система процессов и ядра
sbin Основные системные исполняемые файлы
srv Данные служб работающих в локальной системе
tmp Временные файлы
usr Вторичное иерархическое дерево
var Переменные данные

Обязательные директории : /bin, /sbin, /dev, /etc, /lib.

Создание файловых систем

Для создания файловой системы необходимо пользоваться командой mkfs.mkfs [options] -t [fstype] device [blocksize]

Наиболее часто употребляемые опции:
-t: fstype: Тип файловой системы.
-c: Проверить устройство на плохие блоки перед созданием файловой системы.

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

Возможные значения fstype: msdos, ext2, ext3, reiserfs, minix, xfs, iso9660, ...

Параметр blocksize позволяет задать размер блока файловой системы во время ее создания.

Примеры:[root@test ] /# mkfs -t msdos /dev/fd0
[root@test ] /# mkfs -t reiserfs /dev/hdd1 4096

Создание расширенных файловых систем (ext2, ext3)

Для создания расширенных (ext2, ext3) файловых систем необходимо использовать команду mke2fs.mke2fs [options] device [blocksize]

Наиболее часто употребляемые опции:
-b: Задать размер блока.
-c: Проверить устройство на плохие блоки перед созданием файловой системы.
-j: Создать файловую систему вместе с ext3 журналом транзакций.
-L: Задать метку для файловой системы.

При использовании mke2fs суперблок журнальной информации можно расположить на другом устройстве.

Примеры:[root@test ] /#mke2fs -b 2048 /dev/fd0 -L floppy

[root@test ] /#mke2fs -V
mke2fs 1.26 (3-Feb-2002) Using EXT2FS Library version 1.26

Поддержка целостности файловых систем

Описание

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

Ключевые слова, файлы и утилиты

du
df
fsck
e2fsck
mke2fs
debugfs
dumpe2fs
tune2fs

Файловые системы

Файловые системы позволяют сохранять, считывать и манипулировать блоками данных на блочных устройствах (носителях). Фактически, файловые системы – это единственный способ организации эффективного доступа к содержимому блочных устройств.

Файловые системы оперируют внутренними структурами данных (метаданными), которые хранят все ваши данные определенным образом, с целью обеспечения простого доступа к ним.

Характеристики файловой системы определяются структурой метаданных.

Доступ к файловой системе осуществляется через драйвер к упорядоченным структурам метаданных.

Во время загрузки Linux считывает файл /etc/fstab, содержащий описание всех файловых систем, которые должны быть смонтированы и проверяет их доступность.

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

Этот процесс может занять очень много времени: от нескольких минут до нескольких часов, в зависимости от объема носителя.

Парадигма файловой системы Unix

Концепции, заложенные в файловые системы Unix остаются неизменными с первых Unix-систем, появившихся в 70-х годах. Linux, как одна из Unix-подобных систем, использует общепринятую схему построения файловой системы, базирующуюся на общепринятых абстракциях.

Все файловые системы Unix используют четыре понятия для управления данными на блочных устройствах:

Cуперблок: На каждой монтируемой файловой системе присутствует один суперблок. Суперблок содержит все метаданные и информацию о файловой системе как о едином целом. Суперблок используется для создания точки монтирования.

Файлы: Объекты представляются пользователю как файлы, открываемые процессами. В Unix-подобных файловых системах, директории также являются файлами. Директория – это файл, содержащий список файлов, содержащихся в директории.

Дескриптор файла (inode): Этот объект представляет собой специфический файл. Существует один единственный дескриптор файла на каждый файл (и директорию). На каждый файл можно ссылаться по его уникальному номеру дескриптора.

Дескриптор директории (dentry): "вхождение в директорию" - это элемент пути. Например, в /home/toto/text.txt четыре дескриптора, / (корень файловой системы), home, toto и text.txt. Дескрипторы директории предоставляют функциональность для именования файлов и директорий файловой системы.

Каждый дескриптор директории указывает как минимум на один дескриптор файла, но может существовать и больше чем одна ссылка на один и тот же дескриптор файла. Как раз таким образом и организуются жесткие ссылки. Так как дескрипторы являются локальными для файловой системы, нельзя создать жесткую ссылку на объект в другой файловой системе, даже если данные файловые системы одного типа.

Механизм автоматического завершения набора в оболочках, например в bash основывается на кэше дескрипторов директорий ОС.

Файловые системы с поддержкой журнала транзакций

В файловых системах с поддержкой журнала транзакций присутствует новая структура данных, называемая "журнал".

Журнал расположен на диске, и все модификации с метаданными драйвер в первую очередь заносит в журнал.

Перед каждой модификацией в журнале сохраняется запись о следующей операции.

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

Восстановление файловой системы с поддержкой журнала транзакций происходит значительно быстрее восстановления традиционной файловой системы. Необходимо лишь просмотреть журнал и применить последние операции.

Восстановление таких файловых систем занимает всего несколько секунд.

На кластерных системах рассматриваемые файловые системы позволяют быстро восстановить совместно используемый раздел внезапно отключившегося узла кластерной системы.

Мониторинг использования дисков

Для вывода информации по использованию диска существует утилита du.du [options] [files...]

Наиболее часто употребляемые опции:
-a: Все файлы, но не директории.
-b: Выводить размер в байтах.
-c: Общая сумма.
-h: Облегченный для восприятия человека формат (1K, 20M,...).

При использовании mke2fs суперблок журнальной информации можно расположить на другом устройстве.

Примеры:[root@test ] /# du -ch
Lynuxtraining 112k
LynuxTraining/Cours/LPI101 4.0k
LynuxTraining/Cours/LPI102 4.0k
LynuxTraining/Cours/LPI201 4.0k
LynuxTraining/Cours/LPI202 124k total

[root@test ] /# du -sk ~ # Sums up your total disk usage in kilobytes

[root@test ] /# du -ak ~ | sort -n more
# Display every file and its disk space in numerically
# order.

Использование дискового пространства

Файловая система состоит из структур метаданных плюс списков блоков.

Для вывода использования файловой системой дискового пространства предназначена утилита df.df [options] [files...]

Наиболее часто употребляемые опции:
-a: Все входящие файловые системы, с 0 блоком.
-t: Ограничить вывод типом файловой системы.
-h: Облегченный для восприятия человека формат (1K, 20M,...).

Примеры:[root@test ] /# df -t reiserfs -h
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda3 28771528 3121536 25649992 11% /

[root@test ] /# df -t ext2 -h
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 15M 3.8M 10M 27% /boot

Проверка файловых систем

Для проверки целостности файловых систем используйте утилиту fsck.fsck [options] -t [fstype] device [fsck-options]

Наиболее часто употребляемые опции [options]:
-A: Просмотреть файл /etc/fstab и проверить все файловые системы.
-t fslist: Определить тип файловых систем, которые необходимо проверять. С опцией -A будут проверяться только файловые системы типа fslist.
-C: Визуализировать процесс проверки.

Наиболее часто употребляемые опции [fsck-options]:
-a: Автоматическое восстановление.
-r: Интерактивное восстановление.

Примеры:[root@test ] /# fsck -t msdos /dev/fd0 -a

[root@test ] /# fsck -t reiserfs /dev/hda2 -r

Проверка расширенных (extended) файловых систем

Для проверки расширенных файловых систем необходимо использовать утилиту e2fsck.e2fsck [options] device

Наиболее часто употребляемые опции:
-b: Использовать альтернативное имя файла суперблока.
-c: Эта опция запускает программу маркировки всех сбойных блоков.
-f: Запускает проверку даже в том случае, если файловая система выглядит как не содержащая нарушений целостности.
-a или -p: Восстанавливать автоматически.
-y: Неинтерактивный режим.

Примеры:[root@test ] /# e2fsck -ay /dev/fd0

[root@test ] /# e2fsck -f /dev/hda2

Отладка расширенных (extended) файловых систем

Программа debugfs – это интерактивный отладчик файловых систем. Он может быть использован для проверки и изменения состояния файловой системы ext2.debugfs device

Наиболее часто употребляемые команды:
Help: Выдает справку по командам.
Stats: Выдает статистику по носителю.
Stat file: Выдает статистику по файлу на носителе.
logdump: Сохраняет журнал носителя в файл.

Пример:[root@test ] /# debugfs /dev/hda
> stat haut.gif
Inode: 14
Type: regular
Mode: 0644
Flags: 0x0
Generation: 67558
User: 0
Group: 0
Size: 3786
File ACL: 0
Directory ACL: 0
Links: 1 Blockcount: 8 Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x3ddf3840 -- Sat Nov 23 09:11:44 2002
atime: 0x3ddf3840 -- Sat Nov 23 09:11:44 2002
mtime: 0x3ddf3840 -- Sat Nov 23 09:11:44 2002
BLOCKS: (0-3):55-58
TOTAL: 4

Вывод информации по расширенным (extended) файловым системам

Для вывода информации суперблока и групп расширенной файловой системы необходимо использовать утилиту dumpe2fs.dumpe2fs [options] device

Наиболее часто употребляемые опции :
-b: Вывод сбойных блоков на файловой системе.
-h: Выводить только информацию суперблока.

Пример:[root@test ] /# dumpe2fs -h /dev/fd0
dumpe2fs 1.26 (3-Feb-2002)
Filesystem volume name: floppy
Last mounted on: <not available>
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 184
Block count: 1440
Reserved block count: 72
Free blocks: 1258
Free inodes: 168
First block: 1
Block size: 1024
First inode: 11
Inode size: 128
...

Настройка расширенных (extended) файловых систем

Для настройки расширенных (extended) файловых систем используется утилита tune2fs.tune2fs [options] device

Наиболее часто употребляемые опции :
-i#: Интервал между проверками файловой системы [d|m|w].
-l: Вывести содержимое суперблока.
-L: Установить метку тома.

Примеры:[root@test ] /# tune2fs -L floppy /dev/fd0

[root@test ] /# tune2fs -l /dev/fd0 (Same output as dumpe2fs -h /dev/fd0)
tune2fs 1.26 (3-Feb-2002)
Filesystem volume name: floppy
Block count: 1440
Reserved block count: 72
Free blocks: 1258
Free inodes: 168
First block: 1
Block size: 1024
First inode: 11
Inode size: 128
...

Проверь себя

Список вопросов:
Назовите максимальное число расширенных разделов.
Назовите имя всего SCSI диска.
В чем разница между ext2 и ext3?
Есть ли стандарт на иерархию файловой системы Linux?
Какая команда создает файловую систему на разделе?
Можно ли восстановить старые данные с только что созданной файловой системы msdos?
Какая команда применяется для проверки использования диска?
Какая команда проверяет файловую систему?

Ответы

Ответы на вопросы:
1
/dev/sda
ext3 поддерживает журнал транзакций.
Да, проект FHS.
mkfs
Нет. Раздел полностью перезаписывается.
du
fsck

Упражнения

Упражнение 1

Создайте на дискете файловую систему ext2 с размером блока 2048 байт.

Упражнение 2

Измените метку дискеты на BACKUP.

Упражнение 3

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

Упражнение 4

Используя debugfs, проверьте файловую систему на дискете и выясните, когда происходил последний доступ к файловой системе.

Упражнение 5

Используя утилиту cfdisk, разбейте жесткий диск на разделы. Создайте swap-раздел и системный раздел. Сделайте системный раздел загрузочным и подключите swap раздел. Сохраните изменения. Отформатируйте раздел в файловой системе ext3 (ext2 + журнал) и измените метку файловой системы.

Решения

Решение 1

Команда:[root@test ] /# mke2fs -b 2048 /dev/fd0

Решение 2

Команда:[root@test ] /# tune2fs -L BACKUP /dev/fd0

Решение 3

Команда:[root@test ] /# tune2fs -j /dev/fd0

(Не делайте это – размер блока слишком большой)

Решение 4

Команды:[root@test ] /# debugfs /dev/fd0
[root@test ] /# stats

Решение 5

Запустите утилиту cfdisk.

Следуйте инструкциям.

Управление монтированием и размонтированием файловых систем

Описание

Соискатели должны уметь настраивать процесс монтирования файловых систем. Эти навыки включают в себя ручное монтирование и размонтирование файловых систем, конфигурирование монтирования во время загрузки и конфигурирование монтируемых пользователем съемных носителей, таких как ленты, дискеты и CD-диски.

Ключевые слова, файлы и утилиты

/etc/fstab
mount
umount

Подключение файловых систем

Команда mount присоединяет расположенную на каком-либо устройстве файловую систему к общему древу файловой системы..mount [options]

mount [options] [-t vfstype] [-o options] device dir

Если устройство или директория перечислены в /etc/fstab, вы можете использовать следующий синтаксис :mount [options] [-o options [,...]] device | dir

Обычно, только пользователь root имеет право монтировать устройства, не перечисленные в /etc/fstab.

Примеры:[root@test ] /# mount # Выводит список смонтированных файловых систем. (etc/mtab)

[root@test ] /# mount -a # Монтирует все устройства, перечисленные в /etc/fstab.

[root@test ] /# mount -n -o ro /dev/hdc /mnt
# Монтирует диск /dev/hdc в режиме "только для чтения",
# не обновляя при этом содержимое /etc/mtab.

[root@test ] /# mount /media/cdrom

[root@test ] /# mount /dev/cdrom
# Позволяет обычному пользователю смонтировать CDROM,
# если в /etc/fstab присутствует строка вида:
# /dev/cdrom /media/cdrom iso9660 ro,user,noauto,unhide

Отключение файловой системы

Для отключения файловой системы от древа каталогов используйте команду umount.umount [options]

umount [options] [-o options [,...]] device | dir

Занятая файловая система, например, являющаяся рабочим каталогом некоторого процесса, или содержащая открытый файл не может быть размонтирована.[root@test ] /# umount -a # Отключает все устройства, перечисленные в /etc/fstab.

[root@test ] /# umount /mnt # Отключает файловую систему, смонтированную в /mnt.

[root@test ] /# umount /media/cdrom
# Позволяет обычному пользователю отключить CDROM,
# если в файле /etc/fstab присутствует строка:
# /dev/cdrom /media/cdrom iso9660 ro,user,noauto,unhide

Информация о файловой системе

В файле /etc/fstab перечислены все файловые системы и связанная с ними информация, которая используется при выполнении команды mount -a (во время загрузки).

Файл /etc/mtab управляется ядром и отслеживает, какие файловые системы смонтированы, а какие нет.

Типичный файл /etc/fstab выглядит следующим образом:#device dir destination fs options 1 2
/dev/hda3 / reiserfs defaults 1 2
/dev/hda1 /boot ext2 defaults 1 2
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0
usbdevfs /proc/bus/usb usbdevfs noauto 0 0
/dev/hda2 swap swap pri=42 0 0

Наиболее часто употребляемые опции :
ro: Только чтение.
noauto: Не монтировать автоматически.
exec: Можно исполнять файлы на данной системе.
suid: Позволяет устанавливать признак "set user bit".
user: Позволяет монтировать и размонтировать систему обычному пользователю.
unhide: Скрывает видимые файлы.
async: Все операции выполняются асинхронно.
default: rw, suid, dev, exec, auto, nouser, async.

Проверь себя

Список вопросов:
Какой файл используется командой mount -a для задания файловых систем?
Что означает noauto в файле /etc/fstab?
Что означает sync в файле /etc/fstab?
Что означает -o ro в файле /etc/fstab?
Можно ли размонтировать текущую рабочую директорию?
Какая команда выводит список всех смонтированных систем?
Что происходит с файловыми системами, перечисленными в /etc/fstab, перед монтированием?
Необходимо ли монтировать дискету, содержащую файловую систему msdos перед использованием?

Ответы

Ответы на вопросы:
/etc/fstab
Не монтировать автоматически.
Это означает, что необходимо синхронизировать данные при каждой операции.
Это означает, что устройство будет смонтировано в режиме "только для чтения".
Нет, потому что она будет занята.
mount
Проверяются на повреждения.
Да

Упражнения

Упражнение 1

Создайте запись в /etc/fstab, позволяющую пользователям получать доступ к дискете.

Убедитесь, что вы можете монтировать дискету и создайте файл командой touch.

Упражнение 2

Проделайте следующие операции:
Создайте файловую систему ext2 на дискете.
Смонтируйте дискету.
Скопируйте /etc/*.conf на дискету.
Размонтируйте ее. Что произошло?
Смонтируйте и убедитесь что все файлы снова появились.

Выполните команду:[root@test ] /# tar cvf /dev/fd0 /etc/*.conf

Попробуйте смонтировать заново. Что произошло?
Используйте tar для просмотра содержимого.

Упражнение 3

Файл /etc/fstab содержит всю необходимую для монтирования дискеты информацию. Какой наиболее легкий способ смонтировать дискету?

Решения

Решение 1

Запись в fstab должна быть следующей:/dev/fd0 /mnt/floppy auto noauto,user 0 0

Решение 2[root@test ] /# mke2fs /dev/fd0
[root@test ] /# mount /dev/fd0 /mnt/floppy
[root@test ] /# cp /etc/*.conf /mnt/floppy

Данные будут синхронизированы, когда вы размонтируете дискету.

Команда tar cvf /dev/fd0 /etc/*.conf позволяет сохранить данные на дискету без создания на ней файловой системы.

Так как дискета не содержит файловой системы, она не может быть смонтирована.

Для просмотра содержимого используйте:[root@test ] /# tar tvf /dev/fd0

Решение 3

Для того, чтобы смонтировать устройство перечисленное в /etc/fstab, можно использовать :[root@test ] /# mount /dev/fd0 /mnt/floppy

Управление дисковыми квотами

Описание

Соискатели должны уметь управлять дисковыми квотами пользователей. Эти навыки включают в себя задание квот для файловой системы, редактирование квот, проверку и генерацию отчетов по квотам пользователей.

Ключевые слова, файлы и утилиты

quota
edquota
repquota
quotaon

Управление дисковыми квотами

Пользователь root может полностью управлять использованием дискового пространства в разрезе файловой системы и пользователя. Можно установить следующие два типа ограничений:
Мягкий лимит (soft =) определяет максимальный объем дискового пространства, разрешенный квотой.
Жесткий лимит (hard =) определяет абсолютный максимальный объем дискового пространства который пользователь не может превышать.

Возможно установить некоторое время отсрочки, в течение которого можно превышать мягкий лимит.

Установка квот для пользователей

Для обеспечения возможности работы с квотами, необходимо добавить ключевое слово usrquota и(или) grpquota в файл /etc/fstab для выбранного раздела./dev/fd0 /home/rarrigoni/mnt auto rw,noauto,user,usrquota 0 0
/dev/hda5 /home ext2 defaults,usrquota,grpquota 1 2

Добавьте в корне каждой файловой системы файл quota.user и(или) quota.group (поддержка квот v1) или aquota.user и(или) aquota.group ( поддержка квот v2).[root@test ] /# touch /mnt/aquota.user
[root@test ] /# touch /home/aquota.user
[root@test ] /# touch /home/aquota.group
[root@test ] /# chmod 600 /mnt/aquota.user
[root@test ] /# chmod 600 /home/aquota.user
[root@test ] /# chmod 600 /home/aquota.group

Только пользователь root управляет квотами, и после того как были созданы пустые файлы, квоты устанавливаются таким образом:
Мягкий лимит на число файлов и файловых дескрипторов.
Жесткий лимит на число файлов и файловых дескрипторов, если задано время отсрочки.

Для проверки установок используйте:[root@test ] /# quotacheck -v mnt
quotacheck: Scanning /dev/fd0 [/home/rarrigoni/mnt] done quotacheck:
Checked 6 directories and 1 files

Включение квот для диска:[root@test ] /# quotaon -av /dev/fd0
[/home/rarrigoni/mnt]: user quotas turned on

Настройка лимитов дисковых квот:[root@test ] /# edquota -u rarrigoni
Disk quotas for user rarrigoni (uid 500):
Filesystem locks soft hard inodes soft hard /dev/fd0 15 0 0 4 0 0

[root@test ] /# edquota -g rarrigoni

[root@test ] /# edquota -t
Grace period before enforcing soft limits for users:
Time units may be : days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period /dev/fd0 7days 7days

Просмотр квот

Для просмотра списка квот пользователей или группы используется команда quota.quota [options] [user|group]

Наиболее часто употребляемые опции:
-u: Опция по умолчанию, выводит квоты пользователя.
-g: Выводит групповые квоты для самой группы, или для пользователя, если он - член группы.
-q: Сокращенный вывод. Выводятся только те файловые системы, где превышены квоты.

Пример:[root@test ] /# quota -u rarrigoni

Вывод отчета по квотам

Для вывода отчета по квотам вы можете использовать утилиту repquota.repquota [options] [user|group]

Наиболее часто употребляемые опции:
-a: Отчет по всем файловым системам, перечисленным в /etc/mtab.
-g: Отчет по группам.

Пример:[root@test ] /# repquota /dev/fd0
Report for user quotas on device /dev/fd0 Block grace time: 7days;
Inode grace time: 7days
Block limits File limits User used soft hard grace used soft hard grace
-------------------------- root -- 8 0 0 2 0 0 rarrigoni -- 15 0 0 4 0 0

Проверь себя

Список вопросов:
В каком файле должен быть определен механизм квот?
Какая команда и какие опции инициализируют базу данных квот?
Какой командой можно включить квоты в системе?
Какую команду можно включить в список задач cron для периодической проверки пользовательских квот?
Какой командой можно отредактировать период отсрочки?

Ответы

Ответы на вопросы:
/etc/fstab
[root@test ] /# quotacheck -acmugv


[root@test ] /# quotaon -av


[root@test ] /# /sbin/quotacheck -acmugv


[root@test ] /# edquota -t

Упражнения

Упражнение 1

Установите мягкий лимит для всех пользователей на директорию /home в 500M.

Упражнение 2

Установите время отсрочки в 0.

Упражнение 3

Зайдите в систему как обычный пользователь и проверьте лимиты квот.

Решения

Решение 1

Поместите всех пользователей в определенную группу и наберите следующую команду:[root@test ] /# edquota -g groupname

Решение 2

Используйте edquota -t для задания периода отсрочки.

Решение 3

Используйте quota -v для просмотра лимитов.

Использование разрешений для контроля доступа к файлам

Описание

Соискатели должны уметь контролировать доступ к файлам через разрешения. Эти навыки включают в себя установку разрешений на обычные и специальные файлы, а также директории. Кроме того, необходимо уметь задавать такие режимы доступа как suid, sgid, и sticky bit, а также режимы доступа для групп, флаг immutable flag, и режим разрешения по умолчанию на этапе создания файлов.

Ключевые слова, файлы и утилиты

chmod
umask
chattr

Безопасность файлов в Unix

Безопасность файлов – это наиболее серьезная проблема безопасности, с которой вы можете столкнуться.

Вы являетесь владельцем любой директории, которую сами создали.

Вы сами отвечаете за предоставление доступа к своим файлам и директориям.

Вы можете задать права доступа конкретных пользователей к конкретным файлам и директориям.

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

Права доступа к файлам

Права доступа файлов или директорий можно просмотреть по команде ls -l.

Пример прав доступа :[root@test ] /# ls -l readme
-rwxrw---- 1 toto users 14 Jul 5 10:00 readme

Это означает "права на чтение, запись и исполнение для пользователя toto и права на чтение и запись для группы users. Никаких прав для остальных".(0760) [root@test ] /# ls -l /etc/hosts
-rw-r--r-- 1 root root 14 Jul 5 10:00 /etc/hosts

Это означает "права на чтение и запись для пользователя root и право на чтение для членов группы root и всех остальных". (0644)

Пример прав доступа на директорию :[root@test ] /# ls -ld /bin
drwxr-xr-x 2 root root 4096 Jul 5 10:00 /bin

Это означает "права на чтение, запись и исполнение для пользователя root и право на чтение и исполнение для членов группы root и всех остальных". (0755)[root@test ] /# ls -l /home/toto
drwxr-xr-x 10 toto users 4096 Jul 5 1:00 /home/toto

Это означает "права на чтение, запись и исполнение для пользователя toto и право на чтение и исполнение для членов группы users и всех остальных". (0755)

Права доступа по умолчанию

Утилита, позволяющая легко устанавливать и удалять пакеты в Debian называется dselect.

Права доступа по умолчанию следующие:
при создании файлов, 0666.
при создании директории, 0777.

Большинство систем изменяет эти права во время загрузки при помощи команды umask.

Обычно значение маски равняется 022. Это означает что запись для группы и других пользователей блокируется.

Для проверки значения маски используйте команду:[root@test ] /# umask

Для изменения:[root@test ] /# umask 066

Пример создания нового файла:
Права доступа по умолчанию: rw- rw- rw- (0666).
Маска: 022 (0022).

В итоге файл получит права доступа: rw- r-- r-- (0644)

Пример создания новой директории:
Права доступа по умолчанию: rwx rwx rwx (0777).
Маска: 022 (0022).

В итоге директория получит права доступа: rwx r-x r-x (0755)

Изменение прав доступа к файлу

Для изменения прав доступа к файлу или каталогу используется команда chmod.

Пример изменения существующих прав доступа к файлу:[root@test ] /# chmod 0755 /tmp
#rwx для пользователя, rx для группы и прочих

Примеры изменения, отмены или добавления некоторых прав без их полной замены:[root@test ] /# chmod u+w readme # Добавить пользователю право на запись

[root@test ] /# chmod +r readme # Добавить всем право на чтение

[root@test ] /# chmod -r readme # Отобрать у всех права на чтение

[root@test ] /# chmod u+x,g=r readme
# Добавить право на выполнение для пользователя и установить группе право на чтение
[root@test ] /# chmod u=rwx,go=rx readme
# Установить пользователю права на чтение, запись и выполнение,
# группе и прочим – только на чтение и выполнение.

Для рекурсивного внесения изменений используйте опцию -R.

Чтобы обновить информацию о доступных пакетах, выполните команду:[root@test ] /# chmod -R +x /sbin/*

Назначение владельцев файла

Описание

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

Ключевые слова, файлы и утилиты

chmod
chown
chgrp

Изменение владельца файла и группы

Для изменения владельца файла используется команда chown.[root@test ] /# chown raphael readme

Для изменения группы, которой принадлежит файл используется команда chgrp.[root@test ] /# chgrp dialout caller

Утилита gpasswd позволяет администрировать группы пользователей.gpasswd [-A user] [-M user] group

Наиболее часто употребляемые опции:
-A: Добавляет пользователя с правами администратора группы.
-M: Добавляет пользователя в группу.

Администраторы группы могут добавлять и удалять членов группы.[root@test ] /# gpasswd -d toto users
[root@test ] /# gpasswd -a toto users

Администраторы группы могут установить или снять пароль для группы.[root@test ] /# gpasswd users
[root@test ] /# gpasswd -r users

Расширение прав доступа

Пользователь может получить большие права при выполнении сценария или программы, если для них установлен бит suid или gid.

Если данный бит установлен, то процесс получает права доступа владельца файла, а не того, кто этот файл запустил.

Для задания suid или gid, используется команда chmod.[root@test ] /# chmod 2640 [file] # (2) gid – наследование группы.

[root@test ] /# chmod 4640 [file] # (4) suid – наследование пользователя.

Пример такой программы - /bin/passwd.

При установке бита sticky bit на директорию, право удалять файлы в ней получают только владельцы каталога или файла.[root@test ] /# chmod 1640 /tmp
# Файл сможет удалить только владелец каталога /tmp или его собственный.

Бит sticky bit также можно использовать для для того, чтобы программа оставалась в оперативной памяти (или в области подкачки на диске). Программа остается там до выключения системы. В настоящее время это не используется, так как данная функция переложена на виртуальную память.[root@test ] /# chmod 1640 [file] # Программа останется в памяти.

Упражнения

Упражнение 1

Приведите синтаксис команд chmod с использованием символов для задания следующих прав доступа:rwxrwxr-x
rwxr--r--
r--r-----
rwxr-xr-x
rw-r-xr-x
r-x--x--x
-w-r----x
-----xrwx

Упражнение 2

Приведите синтаксис команд chmod с использованием чисел для задания следующих прав доступа:rwxrwxrwx
--x--x--x
r---w---x
-w-------
rw-r-----
rwx--x--x

Упражнение 3

Определите права доступа на создаваемые директории и файлы для следующих значений umask:umask = 0027

umask = 0011

umask = 0541

umask = 0777

Упражнение 4

Выполните следующие операции:

Создайте две учетные записи пользователей:
id: tst1, группа users, оболочка bash, домашняя директория /home/tst1
id: tst2, группа public, оболочка bash, домашняя директория /home/tst2
Для обеих учетных записей установите пароль.
Войдите в систему как tst1 и скопируйте /bin/ls в домашнюю директорию tst1 как myls. Измените владельца myls на tst1 и установите права доступа на 0710.
Что означают данные права доступа?
Зайдите как tst2 и попробуйте запустить /home/tst1/myls для вывода содержимого домашней директории
Работает ли утилита?
Создайте в /etc/group и /etc/gshadow новую группу labo, включающую tst1 и tst2. Назначьте myls в качестве группы-владельца группу labo.
Зарегистрировавшись под учетной записью tst2, попробуйте еще раз выполнить /home/tst1/myls для просмотра текущей директории.
Работает ли утилита?

Решения

Решение 1chmod u=rwx,g=rwx,o=rx
chmod u=rwx,go=r
chmod ug=r
chmod u=rwx,go=rx
chmod u=rw,g=rx,o=rx
chmod u=rx,go=x
chmod u=w,g=r,o=x
chmod g=x,o=rwx

Не забывайте разделять аргументы символом ,

Решение 2

Установить принадлежность к тому или иному пакету можно командами: chmod 777
chmod 111
chmod 421
chmod 200
chmod 640
chmod 711

Решение 3file= 110 110 110 (666)
dir= 111 111 111 (777)

umask= 000 010 111 (027) umask инвертирует
file 110 110 110
111 101 000
-------------------
110 100 000 (640)

dir 111 111 111
111 101 000
-------------------
111 101 000 (750)

umask= 000 001 001 (011)
file 110 110 110
111 110 110
-------------------
110 110 110 (666)

dir 111 111 111
111 110 110
-------------------
111 110 110 (766)

umask= 101 100 001 (541)
file 110 110 110
010 011 110
-------------------
010 010 110 (226)

dir 111 111 111
010 011 110
-------------------
010 011 110 (236)

umask= 111 111 111 (777)
file 110 110 110
000 000 000
------------------
000 000 000 (000)

dir 111 111 111
000 000 000
-------------------
000 000 000 (000)

Решение 4

Создайте пользователя:[root@test ] /# useradd -m tst1
[root@test ] /# useradd -m tst2

Добавьте пользователя в файл /etc/group:[root@test ] /# vi /etc/group

(Если pubilc не существует добавьте при помощи команды groupadd).

Вы можете также использовать adduser с опцией –ingroup для добавления пользователя в новую группу.

Задайте пароль:[root@test ] /# passwd tst1
[root@test ] /# passwd tst2

Зайдите как tst1:[root@test ] /# su - tst1
[root@test ] /# cp /bin/ls /home/tst1/myls
[root@test ] /# chown tst1 /home/tst1/myls
[root@test ] /# chmod 710 /home/tst1/myls

(Права доступа дают все полномочия владельцу, право на исполнение группе и никаких прав другим пользователям).

Зайдите как tst2 и попробуйте исполнить myls:

Члены группы могут запускать команду, тогда как пользователь tst1 имеет все права. Другие пользователи не имеют никаких прав.

В Mandriva Linux пользователю tst2 будет разрешено исполнять myls.

Создайте группу labo: [root@test ] /# groupadd labo
[root@test ] /# vi /etc/group

Добавьте обоих пользователей в группу labo:[root@test ] /# chgrp labo myls

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

Создание и изменение жестких и символических ссылок

Описание

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

Ключевые слова, файлы и утилиты

ln

Жесткие и символические ссылки

Вы можете использовать ссылки для:
Создания альтернативного пути к файлу.
Создания более короткого или измененного пути к файлу.
Связывания одного файла с другим.

Для этого используется команда ln.ln [options] filename linkname
ln [options] filename linkdirectory

Наиболее часто употребляемые опции:
-f: удаляет существующую ссылку
-s: символическая ссылка

Без параметров создается жесткая ссылка.

В операционной системе Windows ссылки называются ярлыками.

Свойства жестких ссылок

Жесткие ссылки можно создавать только на существующие файлы. Файл полностью удаляется после того как последняя из жестких ссылок удалена.

Ссылка и файл, на который она ссылается, обязаны быть на одном физическом устройстве. Жесткие ссылки невозможно создавать на разных файловых системах или разделах.

Нет видимых различий между ссылкой и именем файла.

Жесткая ссылка ссылается на файл по номеру дескриптора файла. Только обладая правами пользователя root, можно создать жесткую ссылку на директорию.

Свойства символических ссылок

Символическая ссылка может быть создана на еще не существующий файл, и может просматриваться при помощи команды ls. Также возможно разорвать ссылку, удалив файл, на который она ссылается.

Символическая ссылка, в отличие от жесткой, ссылается по имени и пути, а не по номеру дескриптора файла.

Символические ссылки могут ссылаться на объекты, находящиеся на разных устройствах и файловых системах.

Размер символической ссылки зависит от длинны имени объекта, на который она ссылается.

Предупреждение: возможно создание символической ссылки как с абсолютным, так и с относительным путем.

Ссылка на файл

Символическая и жесткая ссылка отображаются по команде ls -l.

Символическая ссылка идентифицируется флагом l в первой позиции записи показывающей разрешения файла, а также выводится в формате : имя_ссылки->настоящее_имя.

Пример:[root@test ] /# ls -l /dev/midi
lrwxrwxrwx 1 root root 6 Jul 4 21:50 /dev/midi -> midi00

Жесткая ссылка идентифицируется по числу, обозначающему счетчик ссылок.

Пример:[root@test ] /# ls ~/readme
lrwxrwxrwx 3 rarrigoni users 677 Jul 4 21:50 readme

Для удаления ссылки используется команда rm. При этом удаляется только ссылка, а не файл на который она ссылается.

Проверь себя

Список вопросов:
Как можно вывести права доступа на файл?
Какая команда добавляет право на исполнение файла и при этом не требует знания исходных прав доступа?
Что делает команда chgrp?
Какая команда с какими опциями создает жесткую ссылку?
Если вы удаляете символическую ссылку, удаляется ли файл, на который она ссылается?
Изменяет ли sticky bit способность выполнять пользователем программу?
Меняет ли команда chown права доступа w, r, x?
Что означает право на исполнение для директории?

Ответы

Ответы на вопросы:
[root@test ] /# ls -l

[root@test ] /# chmod +x file

chgrp позволяет сменить группу.
Команда ln без опций.
Нет.
Нет.
Нет, она меняет uid файла.
Это значит, что вы можете просматривать содержимое директории.

Упражнения

Упражнение 1

Выполните следующие действия:
Создайте новые директории etc и bin в вашей домашней директории.
Скопируйте рекурсивно все файлы из /etc в каталог etc вашей директории, и проделайте тоже самое с /bin и bin.
В вашей локальной директории etc переименуйте все файлы по маске *.conf в *.conf.bak.
Создайте в вашей домашней директории символические ссылку dir ссылающеюся на ваш локальный bin/ls. Проверьте, вызывает ли dir команду ls.
Удалите ссылку dir. Присутствует ли еще bin/ls?
Тот же вопрос, но касательно жесткой ссылки.
Удалите ссылку dir. Остался ли на месте bin/ls?

Решение 1

Следующие команды:[root@test ] /# cd /home/user/
[root@test ] /# mkdir etc bin

Следующие команды:[root@test ] /# cp -r /etc/* /home/user/etc/
[root@test ] /# cp -r /bin/* /home/user/bin

Следующие команды :[root@test ] /# rename .conf .conf.back *.conf

или[root@test ] /# for i in *.conf; do mv $i $i.back; done

Следующие команды:[root@test ] /# cd /home/user/
[root@test ] /# ln -s /bin/ls dir

Следующие команды:[root@test ] /# rm dir

Следующие команды:[root@test ] /# cd /home/user/
[root@test ] /# ln /bin/ls dir

Проверьте ваши заключения.

Поиск системных файлов и перенос их в правильное местоположение

Описание

Соискатели должны уметь ориентироваться в файловой системе согласно стандарта Filesystem Hierarchy Standard. Эти навыки включают в себя способность находить файлы и команды в Linux-системе.

Ключевые слова, файлы и утилиты

find
locate
slocate
updatedb
whereis
which
/etc/updatedb.conf
ln

Система Orphus

отзывов: (0)   Рейтинг:

Пока комментариев нет