Читать книгу 📗 "Linux программирование в примерах - Роббинс Арнольд"
8.2.1. Использование опций монтирования
Команда
mountroМонтирует файловую систему только для чтения. Это необходимо для устройств только для чтения, таких, как CD-ROM и DVD.
loopИспользует кольцевое устройство для интерпретации обычного файла в качестве файловой системы. Пример этого мы показали ранее (см. раздел 8.1.3 «Монтирование файловых систем:
mountОпции передаются с опцией командной строки -о и могут группироваться, отделяясь запятыми. Например, вот использованная ранее командная строка:
mount -t iso9660 -о ro,loop shrike-i386-discl.iso /mnt/cdromОставшиеся опции предназначены для использования в
/etc/fstabautonoautoФайловые системы, помеченные
automount -аnoauto/etc/fstab/win/etc/fstabdefaultsИспользует по умолчанию опции
rwsuiddevexecautonouserasyncasyncdevnodevПозволяет (не позволяет) использовать в файловой системе файлы символьных или блочных устройств.
execnoexecПозволяет (не позволяет) запускать в файловой системе двоичные исполняемые файлы.
usernouserПозволяет (не позволяет) монтировать данную файловую систему любому пользователю. Это полезно для CD-ROM; даже если вы находитесь на рабочей станции с одним пользователем, удобно не переключаться на
rootusernoexecnosuidnodevsuidnosuidПоддерживает (не поддерживает) биты
setuidsetgidrwМонтирует файловую систему в режиме для чтения/записи.
Опции
nodevnoexecnosuidУ каждой файловой системы есть специфичные для нее опции. Важной опцией для
ext2ext3grpidВ качестве конкретного примера вернемся к строчке для раздела Windows в нашей системе:
# device mount-point type options freq passno/dev/hda1 /win vfat noauto,defaults,user,uid=2076,gid=10 0 0Опция
noautodefaultsrwsuiddevexecasyncuserrootuid=gid=/winroot8.2.2. Работа со смонтированными файловыми системами:
getmntent()Любой из файлов
/etc/fstab/etc/mtab/proc/mountsgetmntent()#include <stdio.h> /* GLIBC */#include <mntent.h>FILE *setmntent(const char *filename, const char *type);struct mntent *getmntent(FILE *filep);int addmntent(FILE *filep, const struct mntent *mnt);int endmntent(FILE *filep);char *hasmntopt(const struct mntent *mnt, const char *opt);setmntent()filenametypefopen()mount/etc/mtabumountFILE*