Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Монтирование файловых систем




Linux свободно работает (и даже предпочитает работать) с несколькими разделами диска, содержащими, возможно, разные типы файловых систем. Файлы любой файловой системы становятся доступными только после "монтирования" этой файловой системы. Файлы "не смонтированной" файловой системы не являются видимыми операционной системой. Файловые системы на различных разделах "прививаются" в виде ветвей общего дерева каталогов, растущего из "/". Делается это при помощи команды

mount –o настройки_монтирования устройство точка_монтирования

Например, mount /mnt/cdrom – будет смонтирован привод cdrom.

Устройство - это имя блочного файла-дырки (файлы-дырки представляют собой файлы устройств, подключенных к Linux), точка_монтирования (mountpoint) - полный путь к каталогу, а настройки_монтирования определяют особые параметры, разные для разных файловых систем. Каталог, используемый для монтирования файловой системы, называется directory mount point - точка монтирования. После выполнения этой команды содержимое файловой системы, размещенной на устройстве (как правило, дисковом разделе), становится доступным в виде дерева подкаталогов точки_монтирования. Посмотреть список всех смонтированных файловых систем можно с помощью команды mount без параметров.

Корневая файловая система root всегда является смонтированной, т.к. монтируется во время загрузки, и к ней не применим системный вызов umount. Обычно сначала система root монтируется в режиме read-only. Затем запускается программа fsck для проверки ее целостности и если все в порядке, то система монтируется снова в режиме read-write. fsck не следует запускать на смонтированной файловой системе, так как изменения, произведенные при ее выполнении, могут привести к повреждению системы.

Суперпользователь может размонтировать файловую систему вручную с помощью команды umount точка_монтирования, если на ней не открыто никаких файлов, и никто не использует какой-либо ее каталог в качестве текущего. Например, umount /mnt/cdrom – будет размонтирован привод cdrom, и командой eject можно будет вытащить диск. Для успешного выполнения этого системного вызова требуется, чтобы отсоединяемая файловая система к этому моменту не находилась в использовании.

Для того чтобы файловые системы монтировались при старте, их описывают в файле /etc/fstab. После редактирования этого файла нужно выполнить команду – /bin/mouny –a. Первое поле каждой строки этого файла - устройство или название виртуальной файловой системы, второе - точка монтирования, третье - типфайловой системы, четвертое - настройки монтирования, а пятое и шестое относятся к организации резервного копирования и процедуре проверки цельности. Содержимое fstab практически повторяет выдачу mount. Здесь указывается и область подкачки, которую ядро не монтирует, а использует напрямую. Утилита mount поддерживает усеченный вариант командной строки mount точка_монтирования, при котором она самостоятельно ищет в /etc/fstab, каким способом должна быть смонтирована точка_монтирования. Для того чтобы при старте системы какое-либо устройство не монтировалось, а усеченным mount его можно было смонтировать вручную, в поле "настройки монтирования" добавляется ключевое слово noauto. Две последних строки относятся к монтированию съемных (removable) носителей: лазерного и гибкого дисков. Съемные носители приходится монтировать гораздо чаще несъемных и не во время старта системы.

Для выполнения операций монтирования и демонтирования требуется наличие прав доступа пользователя root, но обычные пользователи могут применять для этого какую-либо программу (например, sudo), позволяющую всем использовать команду mount. Это не лучший способ по причине плохой защиты, хотя его применение не предоставляет напрямую права root каждому пользователю.

Проверкой цельности файловой системы занимается утилита fsck - file system check. fsck запускается при старте Linux, если файловая система находится в нештатном состоянии, или для профилактики, если файловую систему просто давно не проверяли.

9. ОСНОВНЫЕ КАТАЛОГИ:

 

/bin (binaries - двоичные, исполняемые) - содержит исполняемые файлы самых необходимых утилит, они указываются символом «*».

/boot - содержит файлы, необходимые для самого первого этапа - загрузки ядра - и, обычно, само ядро. Пользователю практически никогда не требуется непосредственно работать с этими файлами.

/dev (devices – устройства) - содержит все имеющиеся в системе файлы-дырки: файлы особого типа, предназначенные для обращения к различным системным ресурсам и устройствам. Например, данные, введенные пользователем на первой виртуальной консоли, система считывает из файла /dev/tty1; в этот же файл записываются данные, которые нужно вывести пользователю на эту консоль. В файлах- дырках в действительности не хранятся никакие данные, при их помощи данные передаются.

/etc - содержит системные конфигурационные файлы, хранит информацию о специфических настройках данной системы: информация о зарегистрированных пользователях, доступных ресурсах, настройках различных программ.

/home - содержит каталоги, принадлежащие пользователям системы.

/lib (libraries - библиотеки) - содержит библиотеки, необходимые для работы наиболее важных системных утилит (размещенных в /bin и /sbin). /lib/modules - содержит подгружаемые модули для ядра.

/mnt (mount - монтирование) – необходим для монтирования.

/proc – это узел монтирования других файловых систем. Содержит все "виртуальные" файлы - они располагаются не на диске, а в оперативной памяти. В этих файлах содержится информация о программах (процессах), выполняемых в данный момент в системе.

/root - домашний каталог администратора системы - пользователя root.

/sbin (system binaries) - содержит важнейшие системные утилиты: в дополнение к утилитам /bin здесь находятся программы, необходимые для загрузки, резервного копирования, восстановления системы. Полномочия на исполнение этих программ есть только у системного администратора.

/usrbin – каталог /bin пользователя

/tmp - предназначен для временных файлов.

/usr – этот каталог "государство в государстве". Здесь можно найти такие же подкаталоги bin, etc, lib, sbin, как и в корневом каталоге. Однако в корневой каталог попадают только утилиты, необходимыедля загрузки и восстановления системы в аварийной ситуации - все остальныепрограммы и данные располагаются в подкаталогах /usr. Прикладных программ в современных системах обычно установлено очень много, поэтому этот раздел файловой системы может быть очень большим.

/var (variable – переменные, данные) - содержит те данные, которые создаются в процессе работы разными программами, предназначены для передачи другим программам и системам, и могут понадобиться после того, как создавшая их программа завершила работу.

Основные понятия безопасности системы Linux

У каждого пользователя зарегистрированного в системе Linux есть свой уникальный UID (User ID – идентификатор пользователя), который представляет собой целое число в пределах от 0 до 65 535. добавить пользователя в систему может только root c помощью команды adduser. Идентификатором владельца помечаются файлы, процессы и другие ресурсы. По умолчанию владельцев файла является пользователь, создавший этот файл, хотя владельца можно сменить. В действительности манипулирует файлами не сам пользователь, а запущенный им процесс (например, утилита rm или cat). Каждый процесс системы обязательно принадлежит какому-нибудь пользователю, и идентификатор пользователя (UID) – обязательное свойство любого процесса Linux. Когда программа login запускает стартовый командный интерпретатор, она приписывает ему UID, полученный в результате диалога. Все процессы, запущенные пользователем во время терминальной сессии, будут иметь его идентификатор. Утилита id выводит входное имя пользователя и соответствующий ему UID, а также группу по умолчанию и полный список групп, членом которых он является. Ниже приведен пример того, как узнать идентификаторы пользователя и членство в группах

$ id

uid=503(methody) gid=503(methody) группы=503(methody)

$ id shogun

uid=400(shogun) gid=400(shogun) группы=400(shogun),4(adm),10(wheel),19(proc)

 

Пользователи могут организовываться в группы, которые также нумеруются 16-разрядными целыми числами, называемыми GID (Group ID – идентификатор группы). Назначение пользователя к группе выполняется вручную системным администратором и заключается в создании нескольких записей в системной базе данных, в которой содержится информация о том, какой пользователь к какой группе принадлежит. Пользователь может быть членом нескольких групп, равно как и несколько пользователей могут быть членами одной и той же группы. Одна из групп – группа по умолчанию – является для пользователя основной: когда (не вполне точно) говорят о «GID пользователя», имеют в виду именно идентификатор группы по умолчанию. GID пользователя вписан в учетную запись и хранится в /etc/passwd. В файле /etc/group содержится полная информация о группах (имя группы, пароль, идентификатор группы, список пользователей данной группы).

С каждым выполняемым процессом в ОС UNIX связываются реальный идентификатор пользователя (real user ID), действующий идентификатор пользователя (effective user ID) и сохраненный идентификатор пользователя (saved user ID). Все эти идентификаторы устанавливаются с помощью системного вызова setuid, который можно выполнять только в режиме суперпользователя. Аналогично, с каждым процессом связываются три идентификатора группы пользователей - real group ID, effective group ID и saved group ID. Эти идентификаторы устанавливаются привилегированным системным вызовом setgid.

Пользователь, UID которого равен 0, является суперпользователем или root. Он может читать и писать все файлы в системе. Процессы с UID=0 также обладают возможностью обращаться к небольшой группе системных вызовов, доступ к которым запрещен обыкновенным пользователям.

Защита файлов

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

Защита файлов от несанкционированного доступа в ОС UNIX основывается на трех фактах. Во-первых, с любым процессом, создающим файл (или справочник), ассоциирован UID, который в дальнейшем можно трактовать как идентификатор владельца вновь созданного файла. Во-вторых, с каждый процессом, пытающимся получить некоторый доступ к файлу, связана пара идентификаторов - текущие идентификаторы пользователя и его группы. В-третьих, каждому файлу однозначно соответствует его описатель - i-узел.

На последнем факте стоит остановиться более подробно. Важно понимать, что имена файлов и файлы как таковые - это не одно и то же. В частности, при наличии нескольких жестких связей с одним файлом несколько имен файла реально представляют один и тот же файл и ассоциированы с одним и тем же i-узлом. Любому используемому в файловой системе i-узлу всегда однозначно соответствует один и только один файл. I-узел содержит достаточно много разнообразной информации и среди этой информации находится часть, позволяющая файловой системе оценить правомощность доступа данного процесса к данному файлу в требуемом режиме.

Общие принципы защиты одинаковы для всех существующих вариантов системы: Информация i-узла включает UID и GID текущего владельца файла. Кроме того, в i-узле файла хранится шкала, в которой отмечено, что может делать с файлом пользователь - его владелец, что могут делать с файлом пользователи, входящие в ту же группу пользователей, что и владелец, и что могут делать с файлом остальные пользователи. Мелкие детали реализации в разных вариантах системы различаются.

Права доступа

Для защиты файла каждого пользователя от других пользователей в Unix-системах поддерживается механизм, известный как система прав доступа к файлам. Этот механизм позволяет каждому файлу приписать конкретного владельца, который имеет к нему полный доступ. По умолчанию другим пользователям разрешается читать ваши файлы, но запрещается изменять их или удалять.

При создании объектов файловой системы, файлов, каталогов и т. п., каждому в обязательном порядке приписывается ярлык. Ярлык включает в себя UID хозяина файла, GID, которой принадлежит файл, тип объекта и набор так называемых атрибутов, а также некоторую дополнительную информацию. Атрибуты определяют, кто и что имеет право делать с файлом.

Для каждого файла предусмотрены три вида прав доступа:

1 чтение (r ead) – просмотр, исследование содержимого файлов, в случае каталогов - просмотр перечня имен файлов в каталоге;

2 запись (w rite) - изменение и удаление содержимого файлов, для каталогов это дает право создавать в каталоге новые файлы и каталоги или удалять существующие;

3 выполнение (e x ecute) - запуск файла как программы, для каталога это означает возможность поиска файлов в этом каталоге.

Эти типы прав доступа могут быть предоставлены трем классам пользователей:

1 владелец (u ser) файла;

2 группа (g roup), в которую входит владелец;

3 все, прочие (o ther) пользователи.

При выяснении отношений между файлом и пользователем, запустившим процесс, роль определяется так:

1 Если UID файла совпадает с UID процесса, пользователь – хозяин файла, владелец;

2 Если GID файла совпадает с GID любой группы, в которую входит пользователь, он – член группы, которой принадлежит файл;

3 Если ни UID, ни GID файла не пересекаются с UID процесса и списком групп, в которые входит запустивший его пользователь, этот пользователь – посторонний.

13. При статической схеме именования то, что ядро распознало внешнее устройство, никак не соотносится с тем, что в /dev имеется для этого устройства файл-дырка. Поскольку в любой момент в системе может появиться любое из поддерживаемых Linux устройств, в системе бывает и десять тысяч, и двадцать файлов "на всякий случай". Файл-дырка не занимает места на диске, однако использует индексный дескриптор, поэтому в корневой файловой системе, независимо от ее объема, должен быть изрядный запас индексных дескрипторов.

При динамической схеме именования применяется специальная виртуальная файловая система, которая либо полностью подменяет каталог /dev, либо располагается в другом каталоге (например, /sys), имеющем непохожую на /dev иерархическую структуру; в этом случае файлы-дырки в /dev заводит специальная служба. Этот способ гораздо удобнее и для человека, который запустил команду ls /dev, и для компьютера (в случае подключения внешних устройств, например, съемных жестких дисков, "на лету"). Однако он требует соблюдать дополнительную логику "привязки" найденного устройства к имени, иногда весьма запутанную из-за той же нечеткой идентификации.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных