Чтение онлайн

ЖАНРЫ

Linux программирование в примерах

Роббинс Арнольд

Шрифт:

/dev/hda3 swap swap defaults 0 0

/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0 /* Монтируемый */

/dev/fd0 /mnt/floppy auto noauto,owner 0 0/* Гибкий диск, то же самое */

Разрешены комментарии, начинающиеся с

#
. Вскоре, в разделе 8.2 1 «Использование опций монтирования», будет обсуждение различных опций.

Тот же самый формат файла используется для

/etc/mtab
, куда
mount
записывает информацию о файловых системах, когда они смонтированы;
umount
удаляет информацию из этого файла, когда файловая система демонтирована:

$ cat /etc/mtab

/dev/hda2 / ext3 rw 0 0

none /proc proc rw 0 0

usbdevfs /proc/bus/usb usbdevfs rw 0 0

/dev/hda5 /d ext3 rw 0 0

none /dev/pts devpts rw,gid=5,mode=620 0 0

none /dev/shm tmpfs rw 0 0

none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

/dev/hda1 /win vfat rw,noexec,nosuid,nodev,uid=2076,gid=10,user=arnold 0 0

Ядро

делает доступным (почти) те же самые сведения в
/proc/mounts
, в том же формате:

$ cat /proc/mounts

rootfs / rootfs rw 0 0

/dev/root / ext3 rw 0 0

/proc /proc proc rw 0 0

usbdevfs /proc/bus/usb usbdevfs rw 0 0

/dev/hda5 /d ext3 rw 0 0

none /dev/pts devpts rw 0 0

none /dev/shm tmpfs rw 0 0

none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

/dev/hda1 /win vfat rw,nosuid,nodev,noexec 0 0

Обратите внимание, что в

/etc/mtab
есть некоторые сведения, которые отсутствуют в
/proc/mounts
. (Например, см. строку для точки монтирования
/win
.) С другой стороны, возможно (используя '
mount -f
') помещать в
/etc/mtab
элементы, которые не являются настоящими (эта практика имеет свое применение, см. mount(8)). Подводя итог,
/proc/mounts
всегда описывает, что смонтировано в действительности; однако,
/etc/mtab
содержит сведения об опциях
mount
, которых нет в
/proc/mounts
. Поэтому, чтобы получить полную картину, вам может понадобиться прочесть оба файла

8.2.1. Использование опций монтирования

Команда

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

ro

Монтирует файловую систему только для чтения. Это необходимо для устройств только для чтения, таких, как CD-ROM и DVD.

loop

Использует кольцевое устройство для интерпретации обычного файла в качестве файловой системы. Пример этого мы показали ранее (см. раздел 8.1.3 «Монтирование файловых систем:

mount
»).

Опции передаются с опцией командной строки -о и могут группироваться, отделяясь запятыми. Например, вот использованная ранее командная строка:

mount -t iso9660 -о ro,loop shrike-i386-discl.iso /mnt/cdrom

Оставшиеся опции предназначены для использования в

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

auto
,
noauto

Файловые системы, помеченные

auto
,
должны монтироваться при загрузке системы через '
mount -а
' (монтировать все файловые системы). Файловые системы
noauto
должны монтироваться вручную. Они по-прежнему находятся в
/etc/fstab
вместе с другими файловыми системами. (См., например, элемент
/win
для показанного ранее файла
/etc/fstab
).

defaults

Использует по умолчанию опции

rw
,
suid
,
dev
,
exec
,
auto
,
nouser
и
async
. (
async
является продвинутой опцией, повышающей производительность ввода/вывода).

dev
,
nodev

Позволяет (не позволяет) использовать в файловой системе файлы символьных или блочных устройств.

exec
,
noexec

Позволяет (не позволяет) запускать в файловой системе двоичные исполняемые файлы.

user
,
nouser

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

root
просто для монтирования CD. Демонтировать файловую систему может лишь пользователь, который смонтировал ее.
user
предполагает наличие опций
noexec
,
nosuid
и
nodev
.

suid
,
nosuid

Поддерживает (не поддерживает) биты

setuid
и
setgid
исполняемых файлов в файловой системе.

rw

Монтирует файловую систему в режиме для чтения/записи.

Опции

nodev
,
noexec
и
nosuid
особенно ценны для безопасности на файловых системах гибких дисков и CD-ROM. Рассмотрите студенческую среду, в которой студентам разрешено монтировать собственные гибкие диски или CD. Тривиально смастерить для жесткого диска файловую систему с оболочкой setuid-root или с файлом устройства с разрешением записи для всех, которая позволила бы предприимчивому пользователю изменить права доступа к системным файлам.

У каждой файловой системы есть специфичные для нее опции. Важной опцией для

ext2
и
ext3
является
grpid
. Мы отложим обсуждение этой опции до раздела 11.5.1 «Группа по умолчанию для новых файлов и каталогов». Подробности для всех поддерживаемых файловых систем можно найти в справочной странице mount(8).

В качестве конкретного примера вернемся к строчке для раздела Windows в нашей системе:

# device mount-point type options freq passno

/dev/hda1 /win vfat noauto,defaults,user,uid=2076,gid=10 0 0

Опция

noauto
предотвращает монтирование раздела Windows при загрузке. Опция
defaults
та же самая, что
rw
,
suid
,
dev
,
exec
,
async
. Опция
user
позволяет нам монтировать файловую систему, не будучи
root
. Опции
uid=
и
gid=
делает файлы в
/win
принадлежащими нам, так что нам не нужно иметь права
root
при работе с этим разделом.

Поделиться с друзьями: