Дистанционная поддержка образовательного процесса

Лекция 27 Права доступа в Unix

Лекция 27
Тема: Права доступа в Unix
Как многопользовательская операционная система, ОС Linux содержит механизм разграничения доступа к данным, позволяющий как защитить данные одного пользователя от нежелательного вмешательства других, так и разрешить другим доступ к этим данным для совместной работы. 
Говоря о правах доступа пользователя к файлам, стоит заметить, что в действительности манипулирует файлами не сам пользователь, а запущенный им процесс (например, утилита cat). Поскольку и файл, и процесс создаются и управляются системой, ей нетрудно организовать какую угодно политику доступа одних к другим, основываясь на любых свойствах процессов как субъектов и файлов как объектов системы.
Пользователь может быть членом нескольких групп, равно как и не-сколько пользователей может быть членами одной и той же группы.
При создании объектов файловой системы — файлов, каталогов и т. п. — каждому в обязательном порядке приписывается UID — идентификатор пользователя-владельца файла, GID — идентификатор группы, которой принадлежит файл, тип объекта и набор т. н. атрибутов, а также некоторую дополнительную информацию. 
Атрибуты определяют, кто и что с файлом имеет право делать.

Утилита id выводит входное имя пользователя и соответствующий ему UID, а также группу по умолчанию и полный список групп, членом которых он является.

Представление прав доступа 
Основные атрибуты прав доступа можно представить в виде двенадцати битов двоичного числа, равных 1, если атрибут установлен, и 0, если нет. 
Порядок битов в числе следующий:
 sU|sG|t|rU|wU|xU|rG|wG||xG|rO|wO|xO, где 
sU — это SetUID, 
sG — это SetGID,
t — это t-атрибут (sticky–бит), 
после чего следуют три тройки атрибутов доступа:
rU|wU|xU - права чтения (Read), записи (Write) и выполнения (eXecute) для владельца файла (User); 
rG|wG|xG - права чтения (Read), записи (Write) и выполнения (eXecute) для группы файла (Group);
 rO|wO|xO - права чтения (Read), записи (Write) и выполнения (eXecute) для всех остальных (Other). 
Процессы с установленным битом sU выполняются с правами владельца. А с установленным битом sG – с правами группы. В каталоге с установленным sticky–битом удалять файлы может только владелец или root. При том устанавливать этот бит может только root, а сбрасывать может владелец и root. 
Например, команда ls –l выводит права доступа в таком формате: 
«-rw-rw-rw-» (Первая черточка - обычный файл, и 9 прав доступа - все могут читать и изменять) 
«drwx------» (Каталог, полный доступ (чтение, изменение, выполнение) имеет только владелец файла) 
«-rw-r-----» (Обычный файл, владелец может читать и изменять, группа - читать, остальные - не имеют прав) 
«drwxr-xr--» (Каталог, владелец имеет полный доступ, группа - чтение и выполнение, остальные - только чтение)
«drwxrwxrwt» (Каталог, все имеют полный доступ, однако, установлен sticky–бит, поэтому права записи в каталог для членов группы и для посторонних ограничены их собственными файлами, и только владелец имеет право изменять список файлов в каталоге, как ему вздумается. 
Такие каталоги называются разделяемыми, потому что предназначены они, как правило, для совместной работы всех пользователей в системе, обмена информацией и т. п. При установке атрибута «t» доступ на выполнение для посторонних («t» в строчке атрибутов стоит на месте последнего «x») не отменяется. Просто они так редко используются друг без друга, что ls выводит их в одном и том же месте. Если кому-нибудь придёт в голову организовать разделяемый каталог без доступа посторонним на использование, ls выведет на месте девятого атрибута не «t», а «T».)
 «-rws--x--x» (Обычный файл, установлен атрибут SetUID. Как и в случае с t-атрибутом, ls выводит букву «s» вместо буквы «x» в тройке «для владельца». Точно так же, если соответствующего x-атрибута нет (что бывает редко), ls выведет «S» вместо «s».) 
«-rwx--s--x» (Обычный файл, установлен атрибут SetGID. Утилита ls выводит SetGID в виде «s» вместо «x» во второй тройке атрибутов («для группы»). Замечания касательно «s», «S» и «x» действительны для SetGID так же, как и для SetUID.) права доступа представляются также в двоичном и восьмеричном виде.
    Особенности доступа к каталогам
 Каталог — это особый тип файла. Его содержание — это список других файлов. Каталоги имеют те же «биты прав», что и остальные файлы. Однако то, что эти права означают может быть не таким простым для понимания. 
Если каталог можно читать (r), то это означает, что разрешено только узнать список файлов, содержащихся в этом каталоге. Только список файлов, но не их свойства (размер, права доступа и др.). 
Если каталог можно исполнять (x), то это означает, что в него можно заходить и просматривать содержимое файлов (доступ к которым разрешен для данной категории), узнавать свойства (атрибуты) файлов. Можно изменить содержимое файла (если его разрешено менять), но не имя файла.
Если каталог можно изменять (w), то это означает, что в нем можно изменять файлы, их имена, удалять их. 

Изменение прав доступа 
Изменение прав доступа к указанному файлу (или каталогу) выполняется с помощью команды chmod . При создании каталога также можно сразу указать права доступа к нему с помощью команды mkdir -m. 
Изменение владельца и группы файлов выполняется с помощью команды chown
Группу также можно назначить командой chgrp . Тем же побитовым представлением атрибутов регулируются и права доступа по умолчанию при создании файлов и каталогов. Делается это с помощью команды umask. Единственный параметр umask — восьмеричное число, задающее атрибуты, которые не надо устанавливать новому файлу или каталогу. 
Так, umask 0 приведёт к тому, что файлы будут создаваться с атрибутами «rw-rw-rw-», а каталоги — «rwxrwxrwx». 
Команда umask 022 убирает из атрибутов по умолчанию права доступа на запись для всех, кроме хозяина (получается «rw-r--r--» и «rwxr-xr-x» соответственно), а с umask 077 новые файлы и каталоги становятся для них полностью недоступны («rw-------» и «rwx------»).

Среда, 01.05.2024, 23:25
Приветствую Вас Гость

Вход на сайт

Поиск

Календарь

«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Архив записей

Друзья сайта

  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0