Linux -сборник рецептов

       

Операции с файлами и разделами



Те, кого действительно заинтересует эта тема, найдут дополнительную информацию в спецификации FHS.Вот лишь некоторые обстоятельства, которые должны учитывать пользователи Linux:
  • каталоги /tmp и /var могут размещаться в отдельных разделах с целью повышения безопасности. Если вследствие каких-то сбоев начнется неконтролируемое заполнение этих каталогов, они будут изолированы от остальных компонентов системы;
  • каталог /home может находиться в собственном разделе или на выделенном сервере для упрощения создания резервных копий и защиты данных при обновлении системы. В этом случае содержимое /home останется нетронутым даже после полного уничтожения и переустановки системы Linux;
  • хранение всех конфигурационных файлов в /etc и /home упрощает создание резервных копий. Вы можете ограничиться архивацией только содержимого /etc и /home, а остальные компоненты восстановить с установочных дисков системы. Но это будет означать, что при восстановлении будут потеряны обновления программ —- учтите это обстоятельство при разработке чрезвычайных планов.



ReiserFS — система особенно хорошо подходит для систем с большим количеством мелких файлов (например, почтовых серверов, использующих формат maildir, или серверов новостей). ReiserFS обеспечивает высокоэффективное хранение файлов; остаточные биты файлов упаковываются в листовые узлы b-дерева, что предотвращает напрасное расходование дискового пространства. Система отлично масштабируется и так нее хорошо справляется с большими файлами. ReiserFS работает в любой архитектуре, поддерживаемой системой Linux.
JFS — вклад IBM в Большое Соревнование Файловых Систем Linux; система портирована из AIX и OS/2 Warp. Она поддерживает многопроцессорные системы, списки управления доступом (ACL) и даже — представьте! — динамическое изменение размеров. Просто перемонтируйте файловую систему JFS с новым размером, и ничего больше делать не придется (правда, таким образом можно только увеличить размер тома, но не уменьшить его).
XFS — разработка SGI, портированная из IRIX. XFS мыслит масштабно — заявлено, что она способна работать с файловыми системами объемами до 9 экзабайт. Ее сильной стороной является обработка очень больших файлов (скажем, гигантских баз данных). У XFS имеется одна превосходная функция, называемая отложенным распределением. Система откладывает запись на диск и выбор блока для записи, чтобы выбрать наибольшее возможное количество смежных блоков. Если в системе используется большое количество временных файлов с коротким сроком жизни, XFS может вообще никогда не выделить блоки под эти файлы. XFS обладает интегрированной поддержкой дисковых квот, ACL, архивации и восстановления. См. также
JFS (http://www-124.ibm.com/jfs/); XFS (http://oss.cgi.com/projects/xfs/); ReiserFS (http://www.namesys.com); Ext2/3 (http://e2fsprogs.sourceforge.net/ext2.html); File-system Hierarchy Standard (http://www.pathname.com/fhs/).









Учтите, что флаг + s устанавливает оба бита, setgid и setuid, что может создать угрозу для безопасности, если в этом каталоге хранятся исполняемые файлы или сценарии. Команда chmod 2775 устанавливает только бит setgid.
ВНИМАНИЕ Бит setuid пробивает большую брешь в системе безопасности. Не используйте его для исполняемых файлов. Программы, использующие его (например, /usr/bin/passwd), содержат внутренние меры защиты для предотвращения эскалации привилегий и других нарушений. Если в системе имеются сценарии, которые должны запускаться пользователями, создайте для этой цели специальную группу.
Установите статический бит (sticky bit), чтобы файл не мог быть удален никем, кроме владельца:
# chmod +t /общий_каталог
или
# chmod 3775 /общий_каталог
Комментарии
Все файлы, создаваемые в каталоге, принадлежат той же группе, что и сам каталог. Все файлы, скопированные в каталог, сохраняют принадлежность исходной группе. Чтобы разные пользователи могли работать с одним каталогом, они должны принадлежать к одной группе. Разрешения файлов, создаваемых в каталоге, определяются масками umask владельцев.
Каталог /tmp является классическим примером каталога, использующего статический бит:
# stat /tmp ... Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)
Каталог /tmp должен быть общедоступным для чтения и записи, но мы не хотим, чтобы пользователи или процессы удаляли чужие временные файлы. Задача решается при помощи статического бита.
Бит setuid позволяет пользователям выполнить команду с такими же разрешениями, как у владельца файла. Именно так рядовые пользователи могут изменять свои пароли, хотя запись в файл /etc/passwd разрешена только суперпользователю root:
$ stat /usr/bin/passwd File: '/usr/bin/passwd' Size: 26584 Blocks: 56 10 Block: 4096 regular file ... Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)


Когда программа (например, текстовый редактор или компилятор) создает файл, она жестко кодируется на задание файловых разрешений 0666 или 0777. Если программа знает, что создаваемый файл является исполняемым, она устанавливает разрешения 0777. На практике чаще всего используется значение 0666; именно поэтому для сценариев приходится выполнять команду chmod +x. Как правило, ни 0666, ни 0777 не являются идеально подходящими, поэтому маска umask исключает ненужные биты. Например, с назначением маски umask 0002 обычным файлам будут назначаться разрешения 0664, а исполняемым — 0775.


9.11. Монтирование и демонтирование файловых систем на жестких дисках


# /sbin/fdisk -l Disk /dev/hda : 20. 5 GB. 20576747520 bytes 255 heads, 63 sectors/track, 2501 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdal * 1 893 7172991 7 HPFS/NTFS /dev/hda2 894 1033 1124550 с W95 FAT32 (LBA) /dev/hda3 1034 2501 11791710 f W95 Ext'd (LBA) /dev/hda5 2437 2501 522081 82 Linux swap /dev/hda6 1034 1670 5116639+ 83 Linux /dev/hda7 1671 2436 6152863+ 83 Linux ...
Команда df (Disk Free) покажет, какие разделы уже смонтированы и какие точки подключения при этом используются:
$ df Filesystem lK-blocks Used Available Use% Mounted on /dev/hda6 5116472 1494584 3621888 30% / /dev/hda7 6152668 4011652 2141016 66% /home
Команда df также может использоваться для отображения информации об одном смонтированном разделе. Ключ -h выводит числовые значения в более удобном формате:
$ df -h /dev/hdc6 Filesystem Size Used Avail Use% Mounted on /dev/hdc6 4.9G 1.4G 3.5G 29% /home
Раздел Windows NTFS /dev/hda1 монтируется так:
# mkdir -m 755 /win2k # mount -t ntfs -r /dev/hda1 /win2k
ВНИМАНИЕ Поддержка записи в NTFS находится на экспериментальной стадии. Разрешая ее, вы рискуете своими данными в разделе NTFS, поэтому в команде mount присутствует ключ -г. Для организации общего доступа к файлам NTFS используйте Samba.
Демонтирование тома осуществляется командой
# umount /win2k См. также
mount(8), The NTFS FAQ (http:/linux-ntfs.sourceforge.net/info/ntfs.html).


Units - cylinders of 256 * 512 = 131072 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 499 63586 6 FAT16

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