Брандмауэры и специальное программное обеспечение 8 Часть 4
Вид материала | Реферат |
СодержаниеАтрибуты файловой системы ext2 Использование команды chattr Использование команды Isattr |
- Муниципальное общеобразовательное учреждение средняя общеобразовательная школа №12, 174.77kb.
- Управление экономикой и создание экономических информационных систем Изучив данную, 148.93kb.
- Программное обеспечение ЭВМ, 209.59kb.
- Программное обеспечение вычислительной системы, 824.71kb.
- Учебная программа (Syllabus) Дисциплина: Интерфейсы компьютерных систем (iks 3304), 321.31kb.
- Реферат по Информационной безопасности Тема: «Антивирусы», 711.1kb.
- Пк программный комплекс; по программное обеспечение; ппо прикладное программное обеспечение, 208.41kb.
- Лекция 4 Обеспечивающие подсистемы асу. Математическое, программное, лингвистическое,, 59.3kb.
- Математическое и программное обеспечение систем оперативной оценки характеристик сложных, 247.51kb.
- Учебная программа (Syllabus) Дисциплина «Инструментальные средства разработки программ», 374.12kb.
Атрибуты файловой системы 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
- -r-хr-хr-х 2 root root 6764 Jul 28 01:03 domainname
- -r-хr-хr-х 1 root root 77428 Jul 27 19:31 ps
- rwxrwxrwx 1 root root 3 Aug 5 08:59 ex -> vim
- lrwxrwxrwx 1 root root 3 Aug 5 08:59 rview -> vim
- lrwxrwxrwx 1 root root 3 Aug 5 08:59 rvim -> vim
- lrwxrwxrwx 1 root root 3 Aug 5 08:59 vi -> vim
- lrwxrwxrwx 1 root root 3 Aug 5 08:59 view -> vim
- -rwxr-xr-x 1 root root 470696 Jul 27 22:59 vim
- -rwxr-xr-x 1 root root 366344 Jul 27 21:03 zsh
- lrwxrwxrwx 1 root root 4 Aug 509:02 csh -> tcsh
20554 -r-xr-xr-x 1 root root 265516 Jul 27 20:21 tcsh
- -rwxr-xr-x 1 root root 170768 Apr 30 12:14 ksh
- 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 и прочих каталогов, содержимое которых постоянно изменяется.