Мегаобучалка Главная | О нас | Обратная связь


Пользователи системы и владельцы файлов



2016-09-16 272 Обсуждений (0)
Пользователи системы и владельцы файлов 0.00 из 5.00 0 оценок




Знакомство с файловой системой Linux

Файловая система — это структура, с помощью которой ядро операционной системы предоставляет пользователям (и процессам) ресурсы долговременной памяти системы, т. е. памяти на различного вида долговременных носителях информации: жестких дисках, магнитных лентах, CD-ROM и т.п.

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

Рассмотрим файловую систему с той стороны, которая обращена к пользователям. Речь пойдет конкретно о файловой системе типа ext3fs, основном на данный момент типе файловых систем для Linux (существуют и другие типы файловых систем).

Файлы и их имена

Компьютер есть не что иное, как инструмент для обработки информации. А информация в любой ОС хранится на носителях в виде файлов. С точки зрения ОС файл представляет собой непрерывный поток (или последовательность) байтов определенной длины. Внутренний формат файла операционную систему не интересует. Но ОС должна дать файлу какое-то имя, с помощью которого пользователь, а точнее, программы-приложения, будут обращаться к файлу. Как организовать это обращение — дело файловой системы, пользователя это чаще всего не интересует. Поэтому с точки зрения пользователя файловая система выглядит как логическая структура каталогов и файлов.

Имена файлов в Linux могут иметь длину до 255 символов и состоять из любых символов, кроме символа с кодом 0 и символа / (слэш). Однако имеется еще ряд символов, которые не рекомендуется включать в имена. Это следующие символы:

! @ # $ & ~ % * ( ) [ ] { } ' " \ : ; > < ` пробел.

Если имя файла содержит один из этих символов (это не рекомендуется, но возможно), то вы должны перед этим символом поставить символ \ (обратный слэш).

Но к точке сказанное не относится, и в Linux часто ставят более одной точки в именах файлов, например, filename.tar.gz. При этом теряет смысл такое понятие (принятое в DOS, Windows), как расширение имени файла, хотя все же часто последние части имени, отделенные точками, используют для обозначения файлов каких-то особых типов (например, .tar.gz используется для обозначения сжатых архивов). Но исполняемые и не исполняемые файлы в Linux распознаются не по расширениям имен файлов. Для этого существуют другие признаки, о которых мы скажем чуть позже. Точка имеет особое значение в именах файлов. Если она является первым символом имени, то данный файл считается скрытым для некоторых команд и не отображается в окне файлового менеджера.

В Linux различаются символы верхнего и нижнего регистра в именах файлов. Поэтому FILENAME.tar.gz и filename.tar.gz вполне могут существовать одновременно и являться именами разных файлов.

Каждому файлу в Linux соответствует так называемый "индексный дескриптор" файла, или "inode", (однозначного перевода этого термина на русский язык не существует, в разных книгах эту структуру называют по-разному). Именно индексный дескриптор содержит всю необходимую файловой системе информацию о файле, включая информацию о расположении частей файла на носителе, типе файла и многое другое. Индексные дескрипторы файлов содержатся в специальной таблице (inode table), которая создается при создании файловой системы на носителе. Каждый логический и физический диск имеет собственную таблицу индексных дескрипторов. Дескрипторы в этой таблицы пронумерованы последовательно, и именно номер дескриптора файла является его истинным именем в системе (этот номер мы будем называть индексом файла). Однако для человека такая система имен неудобна. Сможете ли вы вспомнить, что сохранили в файле с номером 56734? Поэтому файлам даются еще символические имена, и помимо этого файлы группируются в каталоги.

Таким образом, имя любого файла в Linux является ни чем иным, как ссылкой на индексный дескриптор файла. Поэтому каждый файл может иметь сколько угодно разных имен. Эти имена называют еще "жесткими" ссылками. Когда вы удаляете файл, имеющий несколько разных имен — жестких ссылок, то фактически удаляется только одна ссылка — та, которую вы указали в команде удаления файла. Даже когда вы удаляете последнюю ссылку, это еще может не означать удаления содержимого файла — если файл еще используется системой или каким-то приложением, то он сохраняется до тех пор, пока он не "освободится".

Пользователи системы и владельцы файлов

Пользователь системы – это субъект, обладающий определенными правами, определяющими возможность запуска программ на выполнение, а также владение файлами. Единственный пользователь системы, обладающий неограниченными правами – это суперпользователь или администратор системы (root). Все остальные пользователи имеют в разной степени ограниченные возможности.

Система идентифицирует пользователей по идентификатору пользователя (UID - User IDentifier). Каждый пользователь является членом одной или нескольких групп – списка пользователей, имеющих сходные задачи. Каждая группа имеет свой уникальный идентификатор группы (GID - Group IDentifier) Принадлежность группе определяет совокупность прав, которыми обладают члены данной группы.

Права пользователя Linux – это прежде всего права на работу с файлами (чтение, модификация или перезапись, исполнение). Любой файл всегда имеет пользователя- владельца (owner), который в свою очередь входит в группу владельца (group owner).

Соответственно права назначаются трем категориям пользователей:

1. владельцу файла;

2. членам группы владельца файла;

3. всем остальным пользователям.

Время от времени, работая в Linux, вы будете испытывать необходимость в том, чтобы изменять права доступа к файлам и каталогам с целью позволить (или запретить) кому-нибудь еще обращаться к вашим каталогам (файлам) или выполнять командный сценарий либо программу. Для этого в контекстном меню файла надо выбрать Properties (Свойства), затем на закладке Permissions (Разрешения) вы можете изменить права доступа на чтение, запись или выполнение для владельца (это вы сами), пользователей вашей группы, и всех остальных.

Каталоги

Если бы файловая структура не позволяла использовать ничего кроме просто имен файлов, даже сколь угодно длинных (т. е. все файлы располагались бы в одном общем списке), то обращаться к ним было бы чрезвычайно трудно. Вообразите себе список из нескольких тысяч файлов! Поэтому файлы группируются в каталоги (папки, директории), которые, в свою очередь, могут быть включены в другие каталоги. В результате получается иерархическая структура каталогов, начинающаяся с корневого каталога. Каждый каталог может содержать как отдельные файлы, так и подкаталоги.

Иерархическую структуру каталогов обычно изображают в виде "дерева каталогов", в котором каждый каталог изображается узлом "дерева", а файлы — "листьями". В MS Windows или DOS каталоговая структура строится отдельно для каждого физического носителя (имеем не единое "дерево", а целый "лес", состоящий из нескольких деревьев). В этом случае корневой каталог каждой каталоговой структуры обозначается какой-нибудь буквой латинского алфавита (например, С:). В Linux (и UNIX вообще) строится единая каталоговая структура для всех носителей, и единственный корневой каталог этой структуры обозначается символом "/". В эту единую каталоговую структуру можно подключить любое число каталогов, физически расположенных на разных носителях (как говорят, "смонтировать файловую систему" или "смонтировать носитель").

Имена каталогов строятся по тем же правилам, что и имена файлов. И, вообще, каталоги в принципе ничем, кроме своей внутренней структуры не отличаются от "обычных" файлов, например, текстовых.

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

В каждый момент времени пользователь работает с одним экземпляром оболочки shell (интерпретатор команд) и эта оболочка хранит значение так называемого "текущего" каталога, т. е. того каталога, в котором пользователь сейчас работает.

Кроме текущего каталога для каждого пользователя определен еще его "домашний каталог"— каталог, в котором пользователь имеет все права: может создавать и удалять файлы, менять права доступа к ним и т.д. Обычно домашние каталоги пользователей размещаются в каталоге /home и имеют имена, совпадающие с именем пользователя. Например, каталог /home/vasya является домашним для пользователя с именем vasya. Такого пользователя называют владельцем каталога. Он может устанавливать права доступа для других пользователей к своим подпапкам, также как и права доступа к своим файлам.

Кроме понятия полного пути существует еще понятие относительного пути. Относительный путь включает те каталоги, которые нужно пройти в "дереве каталогов", чтобы перейти от текущего каталога к какому-то другому каталогу (назовем его целевым). Если целевой каталог, т.е. каталог, который вы хотите сделать текущим, расположен ниже текущего в структуре каталогов, то сделать это просто: вы указываете сначала подкаталог текущего каталога, затем подкаталог того каталога и т. д., вплоть до имени целевого каталога. Если целевой каталог расположен выше текущего в структуре каталогов, то надо указывать полный путь.

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

 

 



2016-09-16 272 Обсуждений (0)
Пользователи системы и владельцы файлов 0.00 из 5.00 0 оценок









Обсуждение в статье: Пользователи системы и владельцы файлов

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (272)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.011 сек.)