Брандмауэры и специальное программное обеспечение




страница9/42
Дата15.02.2017
Размер6.16 Mb.
Просмотров1234
Скачиваний0
ТипАнализ
1   ...   5   6   7   8   9   10   11   12   ...   42
Атрибуты файловой системы ext2
Теперь перейдем к рассмотрению атрибутов, которые поддерживаются в файловой системе ext2, в настоящее время используемой в качестве основной стандартной файловой системы Linux. В настоящее время эта файловая система активно используется в большинстве систем Linux, однако у нее есть существенный по нынешним временам недостаток — отсутствие поддержки журналирования (journaling).
Возможно, что в ядре 2.4 (а скорей всего, в более поздних ядрах) вместо файловой системы ext2 будет использоваться файловая система SGI, однако в настоящее время система ext2 является распространенным стандартом.
Файловая система ext2 поддерживает еще восемь дополнительных атрибутов. По умолчанию при создании нового файла эти атрибуты не устанавливаются, поэтому если в этом есть необходимость, активизировать их нужно самостоятельно. Эти атрибуты хранятся в блоке информационного дескриптора
(inode) под заголовком flag (флаг) в виде шестнадцатеричного числа.
- Атрибут «А», будучи установлен, отключает обновление поля времени последнего доступа к файлу
(поле atime), что позволяет снизить нагрузку на жесткий диск. К сожалению, в настоящее время поддержка этого атрибута не реализована.
- Атрибут «S» предписывает операционной системе асинхронно сохранять на диске все модификации файла. Такое поведение совпадает с поведением MSDOS и эквивалентно выполнению команды sync после каждой модификации файла.
- Атрибут «а» запрещает выполнять над файлом какие-либо операции, кроме добавления данных. Это один из тех атрибутов, установить которые может только суперпользователь.
- Атрибут «с» включает сжатие файла. При записи файла на диск такой файл автоматически сжимается, а при чтении — разжимается.
- Атрибут «d» используется программой dump, которая игнорирует файлы с этим атрибутом и не осуществляет их резервное копирование.
- Атрибут «i» блокирует любую возможность изменения файла. Файлы, обладающие таким атрибутом, являются неизменяемыми (immutable). Файл, обладающий таким атрибутом, нельзя удалить, изменить или переименовать. Кроме того, на него нельзя сослаться при помощи ссылки. Все эти действия блокируются не только для обычных пользователей, но даже и для пользователя root. Только суперпользователь может установить этот атрибут.
- Атрибут «s» предписывает ядру сопровождать удаление файла записью нулей в дисковые блоки,
принадлежащие этому файлу. Такая мера безопасности делает чрезвычайно сложным, а в действительности фактически невозможным восстановление данных файла после удаления этого файла.
- Атрибут «U» предназначен для восстановления файла после того, как файл удален обычным образом. Однако не следует слишком полагаться на этот атрибут, так как зачастую восстановить удается лишь первый блок файла (обычно это 4096 байт). Если вы хотите обеспечить возможность восстановления удаляемых файлов, более правильным решением будет не удалять файл сразу, а перемещать его в специальный каталог, где он будет находиться некоторое время, по истечении которого cron удалит его по- настоящему.
Использование команды chattr
Для настройки перечисленных ранее атрибутов используется команда chattr. Как и для команды chmod, требуемая операция указывается при помощи оператора, за которым следуют символьные обозначения атрибутов. Оператор «+» предписывает команде установить указанные атрибуты, оператор «-»
— сбросить их, а оператор «=» — установить указанные атрибуты и сбросить все остальные.
Кроме того, можно использовать параметр -R, означающий, что команда будет применена также рекурсивно в отношении всех подкаталогов, и параметр -V, означающий вывод версии программы chattr, а также дополнительных сообщений во время ее работы.
Поддерживается также параметр -v. При использовании этого параметра после него следует указать число, которое будет установлено в качестве номера версии индексного дескриптора. Никакого смысла, кроме того, который вы сами ему дадите, в номере версии нет — это просто число, которое можно записать в индексный дескриптор. Это число никак не связано с самим файлом. При создании файла ему выделяется индексный дескриптор из числа свободных, номер версии этого индексного дескриптора устанавливается равным единице. Если выполнить команду mv foo foo2, то файл foo2 унаследует свой индексный дескриптор от файла foo. Это означает, что если файл foo2 до этого существовал, его индексный дескриптор (а значит, и номер версии) будет заменен. Однако если при существующем foo2 выполнить ср foo foo2, индексный дескриптор foo2 останется прежним (если файл foo2 до этого не существовал, ему будет выделен свободный индексный дескриптор с номером версии, равным 1). Caldera использует эти номера при установке системы, давая всем устанавливаем файлам уникальный номер версии. Делается это для того, чтобы файлы, созданные после первоначальной установки, можно было отличить от файлов, созданных во время установки. Например, если обновить пакет (rpm -U), то номер версии новых файлов будет равен не заданному во время установки уникальному номеру, а простой единице. Далее мы еще вернемся к этому вопросу.
Использование команды Isattr
Команда lsattr выводит список файлов и их ехt2-атрибутов. Подобно команде chattr, команда Isattr поддерживает параметр -R, при наличии которого она рекурсивно обрабатывает все подкаталоги, и параметр -V, при указании которого в первой строке вывода отображается информация о программе.
Параметр -а означает отображение информации обо всех файлах, включая файлы, имена которых начинаются с точки. При использовании параметра -d выводятся сведения только о каталогах, но не о файлах. Параметр -l позволяет получить сведения о файлах в расширенном формате, где каждый атрибут отображается не с помощью буквы, а с помощью слов. Наконец, параметр -v включает вывод версии файлов. Будучи запущена без параметров, команда Isattr выдает примерно следующее:
------ ./conf.messages
-ucS-a-A ./uid s---i-d- ./userbatch
Отсюда видно, что файл conf.messages является самым обычным файлом, то есть ни один из ехt2- атрибутов у него не установлен. В то же время у файлов uid и userbatch, напротив, установлено сразу несколько атрибутов. Состояние одного атрибута представляется одним битом, поэтому для представления состояния всех ехt2-атри-бутов достаточно восьмибитного числа, иначе говоря, любая комбинация ext2- атрибутов соответствует числу от 0 до 255, хранящемуся в индексном дескрипторе.
Теперь рассмотрим вывод команды Isattr при использовании параметра -v:
1883578780 --------
./nisdomainname
1883578780 --------
./domainname
1883580320 --------
./ps
1883596959 --------
./ex
1883596959 --------
./rview

1883596959 --------
./rvim
1883596959 --------
./vi
1883596959 --------
./view
1883596959 --------
./vim
1883602714 --------
./zsh
1883587488 --------
./csh
1883587488 --------
./tcsh
1
-------- ./ksh
1
-------- ./pdksh
Список тех же самых файлов, полученный при помощи команды Is -И:
20538 -r-хr-хr-х
2 root root
6764 Jul 28 01:03 nisdomainname
20538 -r-хr-хr-х
2 root root
6764
Jul 28 01:03 domainname
20539 -r-хr-хr-х
1 root root
77428 Jul 27 19:31 ps
20564 rwxrwxrwx
1 root root
3 Aug 5 08:59 ex -> vim
20565 lrwxrwxrwx
1 root root
3 Aug 5 08:59 rview -> vim
20566 lrwxrwxrwx
1 root root
3 Aug 5 08:59 rvim -> vim
20567 lrwxrwxrwx
1 root root
3 Aug 5 08:59 vi -> vim
20568 lrwxrwxrwx
1 root root
3 Aug 5 08:59 view -> vim
20569 -rwxr-xr-x
1 root root
470696 Jul 27 22:59 vim
20571 -rwxr-xr-x
1 root root
366344 Jul 27 21:03 zsh
20572 lrwxrwxrwx
1 root root
4 Aug 509:02 csh -> tcsh
20554
-r-xr-xr-x
1 root root
265516 Jul 27 20:21 tcsh
20573 -rwxr-xr-x
1 root root
170768 Apr 30 12:14 ksh
20574
lrwxrwxrwx
1 root root
3 Aug 5 23:52 pdksh -> ksh
В этом листинге видно, почему файлы nisdomainname и domainname имеют одинаковые номера версий: они ссылаются на один и тот же индексный дескриптор. Также можно заметить прямую связь между символическими ссылками и целевыми файлами, на которые эти ссылки указывают.
Файл pdksh и указывающая на него символическая ссылка ksh были добавлены уже после установки системы, поэтому номер их версии не является уникальным. Все файлы, добавленные в систему после ее установки, имеют номер версии, равный единице (если, конечно, вы впоследствии не изменили его).
ВНИМАНИЕ
Не следует излишне полагаться на уникальность номеров версий, поскольку при подмене файла злоумышленник
может дать ему такой же номер, как и у оригинала. Однако если вдруг выяснилось, что файл /bin/login имеет номер
версии, равный 1, то факт его подмены является несомненным.
Весьма полезным также является атрибут «i», который блокирует любые изменения файла как со стороны обычных пользователей, так и со стороны пользователя root. Рекомендуется устанавливать этот атрибут для частей файловой системы, которые либо вообще не меняются, либо меняются чрезвычайно редко. Благодаря этому суперпользователь не сможет по ошибке удалить их. Наиболее подходящими кандидатами на установку этого атрибута являются некоторые каталоги из /usr, каталоги /bin, /sbin, /lib и, быть может, некоторые другие.
Не следует устанавливать этот атрибут в отношении каталогов /var, /etc, /tmp, /home и прочих каталогов, содержимое которых постоянно изменяется.
Заключение
В этой главе был рассмотрено много тем начиная с атрибутов SUID/SGID и их значения для бинарных исполняемых файлов и каталогов и заканчивая некоторыми малоизвестными атрибутами файловой системы ext2. Кроме того, мы рассмотрели атрибут «sticky bit» (липкий бит) и его значение для каталогов. Мы узнали, как управлять этими битами и когда их следует или не следует устанавливать.
После этого мы перешли к рассмотрению команд chattr и lsattr, коснулись темы номеров версий файлов и закончили советом, как с помощью одного из ext2-атрибутов, а именно атрибута «i», уберечь файлы системы от случайного их удаления суперпользователем.

Структура файловой системы

В данной главе рассматриваются следующие вопросы:
5
- точки монтирования и файловые системы;
- параметры монтирования, поддерживаемые файловой системой ext2;
- параметры монтирования различных файловых систем.
В этой главе рассматривается структура файловой системы с точки зрения безопасности. Организуя структуру файловой системы, следует принимать во внимание множество соображений, таких как объем дискового пространства и прочее, однако помимо этого не следует забывать также и о безопасности. В этой главе мы рассмотрим некоторые аспекты защиты файловой системы.
Точки монтирования
Точкой монтирования (mount point) называется каталог, расположенный в некотором разделе, через который делается доступным содержимое другого раздела. Тем самым разрозненные физические разделы объединяются в единое логическое дерево каталогов. Иначе говоря, при монтировании раздела его содержимое добавляется к этому дереву в виде новой ветви, берущей начало в точке монтирования. Тип и физическое расположение монтируемого раздела могут быть самыми разными: монтируемый раздел может обладать форматом ext2 и располагаться на локальном жестком диске, однако это может быть также раздел
NFS (Network File System), расположенный на удаленном компьютере, доступ к которому осуществляется через сеть. Чтобы выполнить монтирование, необходимо, чтобы монтируемый раздел был доступен (если связь с удаленным узлом отсутствует, раздел NFS смонтировать не удастся) и чтобы его формат поддерживался операционной системой Linux.
На момент написания этой книги наиболее часто используемой файловой системой в OpenLinux является система ext2. Это основной стандартный тип файловой системы Linux. Об особенностях этой файловой системы рассказывалась в главах 3 и 4, где, в частности, говорилось, что, в отличие от DOS, в ext2 используются индексные дескрипторы, в которых хранится вся информация о файле. На самом деле в разных операционных системах используются разные типы файловых систем, а в разных файловых системах используются разные подходы к хранению файлов. В настоящее время существует огромное количество разнообразных файловых систем, их даже больше, чем операционных систем. Система Linux позволяет работать с очень многими файловыми системами.
Точка монтирования обязательно должна быть каталогом, однако не требуется, чтобы этот каталог был пустым. На самом деле получить полностью пустой каталог обычными средствами вам не удастся, поскольку любой каталог всегда содержит файлы «.» и «..», но речь здесь не об этом. Монтирование раздела приводит к тому, что содержимое каталога, являющегося точкой монтирования, заменяется содержимым раздела. В результате изначальное содержимое каталога становится недоступным до тех пор, пока монтированный раздел не будет размонтирован. Таким образом, если у кого-то получится смонтировать гибкий диск поверх каталогов
/bin или /sbin, то вместо оригинальных файлов будут использоваться файлы с гибкого диска со всеми вытекающими из этого последствиями.
Однако всякий, кто пытался монтировать раздел, не будучи суперпользователем, знает, что любые операции монтирования строго контролируются операционной системой. Информация о том, какие разделы и в какие каталоги дозволено монтировать обычным пользователям, содержится в файле /etc/fstab. Вот как может выглядеть содержимое этого файла:
/dev/hdal / ext2 defaults
1 1
/dev/hda /home ext2 defaults
1 2
/dev/hda4 swap swap defaults
0 0 devpts /dev/pts devpts gid=5,mode=620 0
0
/proc /proc proc defaults
0 0
/dev/fdO /mnt/floppy msdos defaults,users,noauto
0 0
/dev/hdc /mnt/cdrom iso9660 ro.user,noauto
0 0
Файл fstab состоит из шести столбцов, разделенных символами пробелов. В первом столбце указывается устройство, обычно дисковое, то есть sd*, fd* или hd*. Одно из возможных исключений показано выше: это устройство devpts, соответствующее псевдотерминалу (pty). Ядро, устанавливаемое при установке системы,
скомпилировано с поддержкой 256 таких терминалов, за что отвечают параметры конфигурации ядра
CONFIG_UNIX98_PTYS и CONFIG_UNIX98_PTY_COUNT. Во втором столбце указываются точки монтирования, куда будут монтироваться устройства из первого столбца. Если понаблюдать за содержимым каталога /dev/ pts, то можно заметить, что оно меняется в зависимости от запущенных программ. Файлы из этого каталога соответствуют задействованным на данный момент псевдотерминалам. Открывают их, например, такие программы, как telnet или xterm. Устройства pty не используются виртуальными консолями, вместо этого виртуальные консоли используют tty.
Для псевдотерминалов приняты специальные меры безопасности: обратите внимание на режим 620 в четвертом столбце, означающий права на чтение-запись для владельца, на запись для группы и отсутствие прав для остальных пользователей. Теперь посмотрим на содержимое /dev/pts: drwxr-xr-x
2 root root 0
Sep 13 07:06 . drwxr-xr-x
4 root root 11264 Sep 13 08:52 .. crw--w----
1 david tty 136, 0 Sep 13 09:18 0
CPW
--
W
----
1 david tty 136, 1 Sep 13 09:11 1 crw-------
1 david tty 136. 2 Sep 13 09:13 2
Как видите, владельцем любого псевдотерминала является открывший его пользователь, кроме того, все они принадлежат группе tty. Владелец имеет право на чтение-запись во все открытые им псевдотерминалы, группа же имеет право только на запись и только в отношении устройств pty0 и pty1. Устройство pty2 доступно только для чтения. Теперь посмотрим на режимы команд write и wall:
-rwxr-sr-x I root tty 8356 Jul 27 20:27 /usr/bin/write
-rwxr-sr-x 1 root tty 6748 Jul 27 19:22 /usr/bin/wall
Для этих команд установлен атрибут SGID и потому они выполняются от имени группы tty — той самой группы, которая обладает всеми псевдотерминалами. Таким образом, при помощи этих команд можно будет вывести сообщение на первые два псевдотерминала, но не на последний. Важно, чтобы только владелец имел право на чтение псевдотерминалов, иначе появляется возможность «прослушивания» их с целью перехвата пароля.
Помните команду mesg? Если выполнить ее на всех псевдотерминалах, открытых пользователем david, то для двух из них будут выведено у, а для одного — п. Это означает, что на первые два псевдотерминала сообщения выводиться будут, а на последний — нет. Для включения возможности вывода сообщений на данный псевдотерминал нужно выполнить на нем команду mesg у. При этом группе tty будет предоставлено разрешение на запись в этот псевдотерминал. И наоборот, выполнение команды mesg n отнимает это право, тем самым отключая возможность вывода сообщений на данный псевдотерминал.
Продолжим рассмотрение файлов из /dev/pts. За именем группы, которую имеет файл терминала, следуют старший (major) и младший (minor) номера устройства. В данном случае старший номер для всех файлов одинаков и равен 136, а младший принимает значения 0, 1 и 2. Дата последнего доступа к файлу, следующая за ними, в данном контексте означает дату, когда пользователь последний раз записывал данные в псевдотерминал.
Соответственно, после каждого вывода команды через псевдотерминал эта дата меняется.
ПРИМЕЧАНИЕ
Содержимое /dev/pts периодически следует проверять. Команда ps aux | grep pts позволит вам узнать, какие
процессы связаны с открытыми на данный момент псевдотерминалами, а команда w или who — кем были открыты
эти псевдотерминалы. Подозрительными можно считать псевдотерминалы со старой датой последнего доступа,
псевдотерминалы, с которыми не связан ни один активный процесс, и псевдотерминалы, используемые процессами, о
которых вы не имеете ни малейшего представления. Возникновение любой из этих ситуаций может означать, что
защита вашей системы была нарушена.
В третьем столбце файла /etc/fstab указывается тип файловой системы, монтируемой по умолчанию. Это может быть любой тип из числа тех, что известны ядру, например, nfs, vfat или одно из значений swap, devpts или ignore.
Четвертый столбец содержит параметры. Имеются в виду параметры файла fstab, а не параметры командой строки. Параметров командой строки чуть больше и они несколько отличаются от параметров, указываемых после ключа -о. Например, параметр «только для чтения» в fstab обозначается как rо, в командной же строке это свойство назначается при помощи ключа -о rо или просто -r. В этом тексте рассматриваются только те параметры командной строки, для которых существует эквивалент в файле fstab.
Любой пользователь с нулевым идентификатором UID может монтировать любую файловую систему в любой каталог. Как упоминалось ранее, монтируемая файловая система замещает прежнее содержимое каталога, что в некоторых случаях может оказаться полезным. Например, представьте, что при установке пакета обслуживающая этот пакет библиотека была помещена в каталог /usr/lib. Однако в этом случае данный пакет можно использовать только тогда, когда раздел /usr монтирован в каталоге /usr. Однако в процессе начальной загрузки монтирование раздела /usr происходит не сразу — система вначале выполняет
множество инициализационных процедур и лишь после этого осуществляет монтирование дополнительных разделов. Таким образом, во время начальной загрузки ОС до того момента, пока не будет смонтирован раздел /usr, ни одна программа не сможет воспользоваться рассматриваемым пакетом. Проблему можно решить двумя способами. Во-первых, можно переместить библиотеку в другой каталог. Во-вторых, можно создать в корневом разделе каталог /usr/lib и поместить в него копию необходимой библиотеки. Оба решения вполне приемлемы. Однако для выполнения стандартной процедуры обновления пакета с использованием RPM будет лучше, если все содержащиеся в этом пакете файлы останутся на предназначенных им местах, поэтому правильней будет пойти по второму пути. К сожалению, дисковое пространство, занимаемое библиотекой на корневом разделе, после монтирования раздела /usr будет пропадать зря, однако файлы библиотек, как правило, не занимают много места (несколько десятков килобайтов по сегодняшним меркам совсем немного), поэтому с этим неудобством вполне можно смириться.
С точки зрения безопасности, монтировать файловые системы, не упомянутые в файле /etc/fstab, может только суперпользователь. Обычному же пользователю дозволено монтировать только их, да и то не все, а лишь те системы, для которых указан параметр user или users.
Здесь будут обсуждаться лишь те параметры монтирования, которые имеют отношение к безопасности. Итак, суперпользователь может монтировать все что угодно. На то он и суперпользователь.
Однако остальные пользователи являются посторонними для системы, и потому весьма опасно давать им такую возможность. Стало быть, чтобы грамотно ограничивать возможности пользователей по монтированию файловых систем, нужно знать, как именно работает механизм монтирования.
ВНИМАНИЕ
Если вы предоставляете пользователем возможность монтирования файловых систем, вы подвергаете вашу
систему определенному риску. Следует ясно представлять себе, с чем связан этот риск, и исходя из этого
использовать соответствующие параметры в файле /etc/fstab.
В рассматриваемом нами случае пользователям предоставлена возможность монтирования компакт- диска и гибкого диска. Вернитесь еще раз к примеру файла /etc/fstab, который был приведен чуть ранее в этой главе, и посмотрите на строчки, соответствующие этим двум устройствам. Обратите внимание на то, что в одном случае использован параметр user, а в другом — users. Монтирование файловых систем осуществляется командой mount. Будучи вызвана без параметров, эта команда читает файл mtab и выводит список смонтированных в системе разделов. Вот как может выглядеть ее вывод:
/dev/hdal on / type ext2 (rw)
/dev/hda3 on /home type ext2 (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/proc on /proc type proc (rw)
/dev/hdc on /mnt/cdrom type iso9660 (ro,noexec,nosuid,nodev,user=david)
/dev/fdO on /mnt/floppy type msdos (rw.noexec.nosuid.nodev)
А вот что находилось в файле /etc/mtab на момент этого вывода:
/dev/hdal / ext2 rw 0 0
/dev/hda3 /home ext2 rw 0 0 devpts /dev/pts devpts rw,g1d=5,mode=620 0 0
/proc /proc proc rw 0 0
/dev/hdc /mnt/cdrom iso9660 ro,noexec,nosuid,nodev,user=david 0 0
/dev/fdO /mnt/floppy msdos rw.noexec.nosuid.nodev 0 0

ПРИМЕЧАНИЕ
Смонтированные файловые системы перечислены также и в файле /proc/mounts, содержимое которого в точности
совпадает с содержимым /etc/mtab. Однако было бы неправильно делать /etc/mtab ссылкой на /proc/mounts, поскольку
это может привести к проблемам с устройствами loopback.
Эти два листинга несколько различаются. В файле mtab перечисляются все смонтированные файловые системы (на самом деле те, при монтировании которых не был указан ключ -n), включая соответствующие столбцы из /etc/fstab, a кроме того, в нем присутствуют два столбца, которых нет в выводе команды mount Помимо этого, в выводе команды mount параметры берутся в скобки, поскольку так их легче заметить.
ПРИМЕЧАНИЕ
Если смонтировать файловую систему с ключом -п, означающим «не помещать запись о монтируемой системе в
файл mtab», то ни команда df, ни команда mount не покажут эту файловую систему. Тем не менее, если используется
/proc, то сведения об этой файловой системе будут присутствовать в файле /proc/mounts. Ключ -п используется в
случае, если файловая система монтируется только для чтения и не предназначена для обычного использования.

В обоих листингах есть записи, соответствующие гибкому диску и компакт-диску. В записи для компакт-диска есть строчка user=david. В записи для гибкого диска такой строчки нет. Различие вызвано тем, что для гибкого диска в файле / etc/fstab используется параметр users, а для компакт-диска — параметр user. Параметр user означает, что монтировать данную файловую систему в данную точку монтирования может любой пользователь, а размонтировать — только тот, кто ранее смонтировал ее. Параметр users означает, что монтировать и размонтировать файловую систему может любой пользователь. В этом примере я намеренно отошел от рекомендуемого использования параметров user и users и переставил их местами. Как видно из листинга, компакт-диск смонтирован в режиме только для чтения (rо), тогда как гибкий диск — в режиме чтения-записи (rw). При таком режиме другой пользователь может подменить чужую дискету своею, дождаться окончания записи на нее, вставить обратно оригинальную дискету и спокойно удалиться с чужими файлами на своей дискете. Поэтому подумайте, стоит ли в вашем случае разрешать пользователям монтировать гибкие диски на запись. Для компакт-диска, смонтированного в режиме только для чтения, такой проблемы не существует, поскольку файлы на него никто записывать не будет. Что касается записываемых компакт-дисков (CD-R), то в большинстве устройств чтения и тем более записи компакт-дисков лоток для диска не выйдет до тех пор, пока диск не будет размонтирован, поэтому с компакт-дисками все гораздо проще.
В файле fstab используются следующие параметры (порядок перечисления значения не имеет):
- async/sync — обмен данными с данной файловой системой осуществляется асинхронно/синхронно;
- atime/noatime — обновлять/не обновлять дату последнего доступа (atime);
- auto/noauto — при использовании параметра -а совместно с командой mount данная файловая система будет/не будет смонтирована;
- dev/nodev — интерпретировать/не интерпретировать символьные или специальные блочные устройства;
- ехес/поехес — разрешить/запретить выполнение бинарных файлов, расположенных в данной файловой системе; •
- suid/nosuid — принимать во внимание/игнорировать атрибуты SUID/SGID для данной файловой системы;
- nouser/user(s) — разрешить/запретить пользователям монтировать данную систему;
- rw/ro — монтировать систему для чтения-записи/только для чтения;
- remount — если возможно, данную файловую систему следует монтировать заново (обычно используется для изменения режима доступа к корневой файловой системе с го (только для чтения) на rw
(чтение-запись) и наоборот);
- defaults — использовать параметры по умолчанию, что означает rw, suid, dev, exec, auto, nouser и async
В отношении параметра defaults могут возникнуть некоторые вопросы. Если использован параметр user(s), а значения остальных параметров равны значениям по умолчанию, то есть suid, dev, exec, то что мешает обычному пользователю смонтировать гибкий диск, содержащий исполняемые файлы с атрибутом
SUID (это могут быть программные средства для взлома системы)? Все очень просто. При наличии параметра user(s) значения параметров по умолчанию меняются на noexec, nosuid и nodev. Если по некоторым причинам требуется избавить пользователей от необходимости копировать файл с дискеты для его выполнения, можно явно указать параметр exec. Только нужно, чтобы он следовал после параметра defaults. Команда mount обрабатывает параметры слева направо, замещая ранее встреченные значения параметров значениями, указанными далее. Поэтому указание user перед defaults равносильно указанию nouser вслед за user: в итоге используется значение параметра, указанное последним.
Пятый столбец файла /etc/fstab является управляющим столбцом команды dump. Единица в этой позиции предписывает осуществлять резервное копирование данной файловой системы, ноль — не осуществлять. Шестой столбец управляет порядком проверки файловых систем командой fsck. Для корневой файловой системы следует указать 1, для всех остальных — 2, а для тех систем, которые не нужно проверять, — 0 (некоторые файловые системы просто бессмысленное проверять командой fsck, к этой категории относятся фактически все файловые системы, не являющиеся ext2). Пустое значение в этих двух столбцах интерпретируется как ноль, однако заметим, что если шестой столбец не пуст, то и пятый столбец обязан содержать непустое значение.


Поделитесь с Вашими друзьями:
1   ...   5   6   7   8   9   10   11   12   ...   42


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал