Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Права доступа в файловой системе Unix




Говоря о правах доступа пользователя к файлам, стоит заметить, что в действительности манипулирует файлами не сам пользователь, а запущенный им процесс (например, команда rmили cat). Поскольку и файл, и процесс создаются и управляются системой, ей нетрудно организовать какую угодно политику доступа одних к другим, основываясь на любых свойствах процессов как субъектов и файлов как объектов системы.

В Unix, однако, используются не какие угодно свойства, а результат идентификации пользователя – его UID. Каждый процесс системы обязательно принадлежит какому-нибудь пользователю, и идентификатор пользователя – обязательное свойство любого процесса Unix. Когда программа loginзапускает стартовый командный интерпретатор, она приписывает ему UID, полученный в результате диалога. Все процессы, запущенные пользователем во время терминальной сессии, будут иметь его идентификатор.

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

 

drwxr-xr-x 2 methody methody 4096 Окт 31 15:21 examples

-rw-r--r-- 1 methody methody 26 Сен 22 15:21 loop

-r-------- 1 root root 0 Сен 10 02:08 /etc/shadow

 

Первый символ в строчке атрибутов определяет тип файла. Тип «-» соответствует обычному файлу, а тип «d» – каталогу, тип «l» - символической ссылке, тип «s» - сокету, тип «р» - именованному каналу.

Теперь более подробно о том, чему соответствуют девять символов в строке атрибутов, выдаваемой программой ls. Эти девять символов имеют вид rwxrwxrwx, где некоторые «r», «w» и «x» могут заменяться на «-». Очевидно, буквы отражают принятые в Unix три вида доступа – чтение (r ead), запись (w rite) и исполнение (e x ecute). В строке атрибутов они присутствуют в трех экземплярах. Это потому, что любой пользователь (процесс) Unix по отношению к любому файлу может выступать в трех ролях: как владелец (user), как член группы, которой принадлежит файл (group), и как сторонний пользователь (other), никаких отношений собственности на этот файл не имеющий. Строка атрибутов – это три тройки rwx, описывающие права доступа к файлу владельца этого файла (первая тройка), группы, которой принадлежит файл (вторая тройка) и сторонних пользователей (третья тройка). Если в какой-либо тройке не хватает буквы, а вместо нее стоит «-», значит, пользователю в соответствующей роли будет в соответствующем виде доступа отказано.

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

Если UID файла совпадает с UID процесса, пользователь является владельцем файла.

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

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

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

 

Права доступа хранятся в 16-битовом поле индексного дескриптора файла. 12 битов отведено под хранение режима доступа, а оставшиеся 4 бита определяют тип файла, который устанавливается при создании файла и не подлежит изменению.

 

        SUID SGID sticky r w x r w x r w x

 

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

 

Права доступа Файл Каталог
r(чтение) чтение из файла получение списка файлов каталога
w(запись) запись в файл изменение содержимого каталога (создание и удаление файлов в нем)
x(исполнение) исполнение файла, если он является сценарием или программой вход в каталог и осуществление в нем поиска

 

Разрешения, установленные для каталога, имеют более высокий приоритет, чем разрешения, установленные для файлов этого каталога.

 




Поделиться с друзьями:


Дата добавления: 2015-04-29; Просмотров: 468; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.