
LINUX / lab2_m2_iems_iems_ktni_niy16
.pdf
Модуль 2. Лабораторная работа №2 Назначение прав доступа на объекты
Цель работы: на основе командного интерпретатора BASH научиться назначать права доступа на объекты операционной системы Linux.
Теоретические сведения
Операционная система Linux является не только удобной, гибкой, многозадачной и многопользовательской средой для пользователей, но также надежной и безопасной. В Linux принципиально реализованы два глобальных уровня безопасности.
Первый уровень безопасности связан с аккаунтом пользователя, т.е. с возможностью регистрации пользователя в операционной системе. Пользователь в текстовой или графической средах, непосредственно на компьютере с Linux или, заходя удаленно с терминала, должен ввести свое регистрационной имя, которое носит английское название “login”, а также ввести пароль, который называется в системе “password”. Система сначала проверяет, существует или вообще пользователь с данным именем, и если такой действительно существует, то дальше проверяет, он ли пользуется этой учетной записью при помощи сверки пароля с данными в системе. При входе пользователя в систему подключается второй уровень безопасности.
Второй уровень безопасности связан с доступом пользователя к данным (объектам файловой системы Linux) операционной системы. Вообще, все файлы в системе можно условно разделить на две категории: файлы, которые использует сама система (бинарные исполняемые файлы, статические и динамические библиотеки и т.д.) и файлы, которые в своей работе используют пользователи. Напомним, что краткую или расширенную информацию о наличии файла или директории можно получить по команде ls (см. лаб. раб. №1). Выведем расширенную информацию о файле chanal1.plx .По этой команде отображается следующая информация.
Рассмотрим полную информацию о файле по расширенному выводу команды ls с опцией –l слева направо. Самой левой информацией является набор прав доступа на объект, далее через пробел указывается сколько раз встречаются в системе ссылки на этот объект, затем указывается владелец данного объекта, потом через пробел отображается группа пользователей, которые могут пользоваться этим объектом, далее идет размер файла, затем дата создания или последней модификации объекта, и, наконец, в конце указывается название объекта. При сокращенном выводе данных по команде ls указывается имя объекта. Остановимся на перечисленных полях данных более подробно, уже справа налево.

Итак, объекту можно задавать либо только имя, либо имя с расширением. Использование расширений в Linux является необязательным. Их используют только для связи файлов и исполняемых команд. При работе с файлами удаленно в командном интерпретаторе с помощью терминала, когда вы не используете мышь и пиктограмм Linux, расширения не нужны. Однако они могут быть полезными, если вы запускаете даже удаленно какое-нибудь графическое приложение, которое по умолчанию запускает файлы с определенным расширением.
При создании файла в Linux или при переносе файла из других операционных систем отображается полная дата создания файла или, если файл был модифицирован, то дата последней модификации. Это очень удобно, так как позволяет контролировать последние изменения в файле.
Размер файла или каталога по умолчанию в ls указывается в байтах, однако вывод сведений о размере объекта в других программах и командах можно изменить.
Следующие два поля слева направо указывают владельца файла или каталога и группу пользователей, которые могут пользоваться этим объектом. На этих полях мы далее поподробнее остановимся.
Следующее поле показывает суммарное количество ссылок в системе на этот объект. В Linux имеется возможность создавать, так называемые мягкие и твердые ссылки. Ссылки не являются предметом рассмотрения этой лабораторной работы, что это такое мы покажем в других работах. Если объект присутствует один и не него не ссылаются в системе, то в этом поле указывается цифра 1.
Наконец, последнее поле, которое мы рассматриваем, и оно же первое при чтении информации слева направо – права доступа на объект. На данном поле мы остановимся подробнее.
Права доступа на объект. Чтобы уберечь свои собственные файлы и каталоги операционная система использует ограничения на них. Такое же ограничение используется между данными разных пользователей, чтобы один из пользователей не смог специально или случайно повредить данные другого пользователя. При этом ограничение доступа к данным разделяется на ограничение на чтение (reed, символ “r”), ограничение на запись (write, символ “w”) и ограничение на выполнение файла (execution, символ “x”), если он исполняющий. Комбинация прав доступа на объект указывается в следующей последовательности: r w x . Если хотя бы одно из прав у пользователя отсутствует, то на месте этого символа ставится прочерк: - .Таким образом, операционная система не позволяет пользователю, не имеющему на это полномочий, читать, модифицировать объекты и запускать программы. Например, если пользователю разрешено только читать, а остальное запрещено, то последовательность будет такой: r-- , а если разрешено читать и запускать файл, но нельзя модифицировать, то такой: r-x и так далее. Т.е. каждый пользователь обладает своими правами на каждый объект.
Однако для того, чтобы следить за работой операционной системы, назначать новых пользователей, запускать программы диагностики работы

системы, контролировать работу процессов, контролировать состояние ресурсов системы и назначать приоритеты между пользователями в операционной системе Linux назначается пользователь с максимально неограниченными возможностями, который имеет учетную запись “root”. «Root» или, как его еще называют из-за неограниченных возможностей, суперюзер призван следить за работой пользователей и системы, должен вовремя перераспределять ресурсы системы в пользу тех пользователей, которым их явно не хватает при решении своих задач (по умолчанию, приоритеты между пользователями равны), поэтому рут изначально имеет доступ или возможность создания полного доступа не только к своим данным, но также к данным других пользователей и данным системы.
Кроме указанных ограничений на чтение, запись и выполнение файлов, при доступе к данным Linux имеется и другое ограничение. Все пользователи в системе по уровню доступа к данным в Linux разделяются на три категории: владелец объекта (user), пользователи, входящий в группу, которой разрешен доступ к файлу (group) и другой сторонний пользователь (other), которые не имеют отношения к объекту Linux. В связи с этим полный набор прав доступа представляет собой последовательную комбинацию прав доступа всех трех категорий: владелец (user), группа пользователей (group) и другие пользователи (other). При этом каждая из категорий представлена набором трех ограничений на объект: чтение (r), запись (w) и выполнение (x).
В этом примере владельцу разрешено читать и модифицировать файл, группе пользователей только читать, и другой категории тоже читать. Прочерк перед комбинациями говорит о том, что мы имеем дело с файлом, а не с ссылкой или категорией.
Если пользователь сам создает файлы или каталоги – он ими владеет, т.е. может ими распоряжаться. Например, повысить уровень доступа к ним (rwx) или передать его другим пользователям, или пользоваться объектом совместно с другими пользователями. Таким образом, при доступе к этим объектам система безопасности Linux назначает ему и использует для него категорию – создатель или по-английски owner. По умолчанию, пользователь, создавший файл, может его читать (просматривать) и модифицировать (изменять, редактировать). Он может сам также его сделать исполнительным. Создатель объекта имеет доступ к этому объекту по первой категории прав (чтение, запись, выполнение). При работе с общими проектами (файлами или каталогами) в Linux имеется возможность пользователям объединяться в группы (group). Это очень удобно, когда многим пользователям приходится работать (читать, изменять и выполнять) одни и те же файлы. При этом разрешить пользоваться созданным объектом группе пользователей (group) может как сам создатель этого объекта (user), так и суперпользователь системы root. Пользователи, находящиеся в одной группе, имеют одинаковые права на доступ к объекту Linux (файлу или каталогу), которые уже в свою очередь разделяются на доступ на чтение, доступ на запись, доступ на выполнение. Пользователи группы имеют доступ к объекту по второй категории
прав доступа (чтение, запись, выполнение). И, наконец, существует также и третья категория, связанная с ограничениями доступа к объекту Linux – другой пользователь (other). Этот пользователь не является создателем объекта (user), он также не входит в группу пользователей (group), которые используют этот объект в своих целях при работе. Пользователь other имеет доступ к объекту Linux по третьей категории (чтение, изменение, выполнение). При попытке доступа пользователя к объекту Linux, система проверяет этого пользователя на принадлежность одной из трех категорий. Сначала на принадлежность к создателю (user). Если файл действительно создан этим пользователем, то система разрешает пользователю получить доступ к объекту в соответствие с первой категорией прав доступа (наложенными атрибутами на файл – чтение, изменение, выполнение). Если пользователь не является создателем объекта, но находится в группе пользователей, которые могут пользоваться этим объектом, то система разрешает пользователю пользоваться этим объектом по второй категории прав доступа на объект (чтение, модификация, выполнение). И, наконец, если пользователь не является создателем (user) и не входит в группу пользователей (group), которым открыт доступ к объекту, т.е. является “другим пользователем” (other) для данного объекта, то система разрешает ему использовать объект по третьей категории прав доступа (чтение, изменение, выполнение). Один и тот же пользователь для разных данных Linux может принадлежать всем трем категориям.
Назначение прав доступа на объект. При создании файла и директории по умолчанию командный интерпретатор назначает права доступа: rw-rw-r-- для файла и rwxrwxr-x для директории. Если пользователь user23, который входит в группу пользователей group14 создает новый файл rrr67, то расширенная информация по команде ls будет следующей (для упрощения размер и дату создания файла мы опустим).
-rw-rw-r-- 1 user23 group14 rrr67
Информация по правам доступа гласит о следующем. Пользователю user23 разрешено читать и модифицировать файл; группе, в которой он состоит – тоже читать и модифицировать файл, а остальным только читать.
Однако такие права по умолчанию можно изменить. Например, это нужно, что бы пользователи, входящие в группу больше не имели доступа к вашим файлам. Изменение прав доступа осуществляется с помощью команды chmod , в командной строке после которой может быть указана опция, например, опция –R для рекурсивного (применимого ко всем объектам вложения) изменения прав для директории, далее через пробел новые права и опять через пробел название файла или директории. Назначать новые права на объект можно как с нуля, т.е. не зависимо от предыдущих прав, так и модифицируя имеющиеся.
Назначение прав доступа “с нуля” (восьмеричного вида). Назначать права доступа “с нуля” можно с помощью восьмеричного вида путем последовательного указания трех цифр: 0 или 7, которые соответствуют каждой из категорий. Полная таблица соответствий прав доступа показана ниже.
Восьмеричный вид |
Двоичный вид |
Символьный вид |
Права |
доступа, |
|
|
|
|
разрешено |
|
|
0 |
000 |
--- |
Нет никаких прав |
|
|
1 |
001 |
--x |
Только выполнение |
|
|
2 |
010 |
-w- |
Только запись |
|
|
3 |
011 |
-wx |
Только |
запись |
и |

|
|
|
выполнение |
|
|
4 |
100 |
r-- |
Только чтение |
|
|
5 |
101 |
r-x |
Только |
чтение |
и |
|
|
|
выполнение |
|
|
6 |
110 |
rw- |
Только чтение и запись |
|
|
7 |
111 |
rwx |
Полные права |
|
Таким образом, с помощью восьмеричного вида удобно по одной цифре назначать права для каждой из категорий.
!!! Оговоримся, назначать права на объект Linux с помощью восьмеричного вида для всех трех категорий может только владелец объекта и root. Пользователь в группе и остальной пользователь этого сделать не могут.
Выведем сведения о файле laba2.cmd, который находится в текущей директории.
Как видно, данный объект доступен владельцу для чтения и записи, группе и остальным – только для чтения. Назначим новые права доступа владельцу – полные права, группе – чтение и запись, остальным – никаких прав. В соответствие с таблицей, в восьмеричном виде установим 760 с помощью команды chmod.
Теперь файл laba2.cmd имеет новые права. С помощью команды chmod можно также рекурсивно назначать права на все объекты в папке. Выйдем из папки, т.е. перейдем на уровень выше с помощью команды cd .. . И назначим теперь новые права на всю папку laba2 . Войдем опять в папку и убедимся, что на все файлы установлены новые права 760.
Модификация имеющихся прав доступа (символьный вид). Когда требуется изменять уже имеющиеся права на объект, то также используют команду chmod, однако пользуются символьным способом. Например, если объект для владельца доступен для чтения, записи и выполнения, а Вы – владелец и Вам требуется убрать доступ на выполнение, то в символьном виде можно просто отнять права на выполнение. Т.е. написать следующую команду, например, для файла laba2.log: сhmod u-x laba2.log , что означает убрать право для владельца

(user, u) на выполнение (execution, x). Выполним сразу команду ls –l , затем поменяем права на файл laba2.log и опять выполним ls –l .
Из примера видно, что атрибуты файла laba2.log с rwxrw---- изменились на rw-rw---
- .
Иногда также требуется поменять владельца файла или каталога, т.е. отдать его другому пользователю. Это можно сделать при двух условиях. Во-первых, должна быть создана регистрационная запись пользователя в системе, которому предназначается передача файла или каталога. Во-вторых, передать файл или каталог может только суперпользователь системы root. В следующем примере root передает файл laba2.cmd пользователю kras .
Суперпользователь root также может изменить группу пользователей для объекта c помощью команды chgrp. В следующем примере суперпользователь меняет для вышеуказанного файла текущую группу на группу kras с помощью команды chgrp. chgrp kras laba2.cmd
Команда umask. Если Вам требуется изменить права доступа на уже существующие объекты файловой системы, мы применяем команду chmod . А что делать, если требуется создать объект с уже определенными правами доступа? По умолчанию, для всех пользователей в Linux текущие права доступа на файл – 644, а на директорию – 755. А пользователю, например, требуется иметь отличные от прав по умолчанию права доступа на ОФС.
Для этих целей существует команда umask. С помощью данной команды можно установить маску на права доступа относительно максимально возможных прав доступа на объект в текущем сеансе пользователя на новые создаваемые объекты. Текущее значение маски можно вывести, введя в
командной строке команду umask без параметров. Например, значение может составлять 022.
Маска разграничивает 2 типа объекта: файл (файл, ссылка, файл устройства)
и директория. Максимальные возможные права на файл по умолчанию в Linux: 666 (для всех категорий пользователей – право на чтение и запись). Вручную с использованием команды chmod их можно расширить до 777 (полные права для всех категорий пользователей). Максимальные возможные права на директорию по умолчанию в Linux: 777 (полные права для всех категорий пользователей). Более широкие права доступа на директорию относительно прав доступа на файл используют намеренно, чтобы директория в себе могла хранить все объекты файловой системы с любыми атрибутами.
С помощью команды umask, устанавливаемой для конкретного сеанса пользователя, можно создавать усеченные права относительно прав по умолчанию на создаваемые в этом сеансе новые объекты файловой системы. Новый созданный объект (файл, директория, ссылка, файл устройства) будет иметь права доступа для трех категорий пользователей как разность между максимальными правами
доступа по умолчанию для данного объекта (для файла – 666, для директории – 777) и значением маски, устанавливаемой при команде umask в качестве параметра. Например, установим маску со значением 002:
[antonk@fargo laba2]# umask 002
Тогда новый файл, созданный после этой команды, будет иметь права 664 (666002=664).
vi test |
|
-rw-rw-r-- |
1 antonk user 14 Apr 14 14:02 test |
Если часто требуется использовать собственное значение команды umask, чтобы постоянно не вводить данную команду при завершении и открытии нового сеанса командного интерпретатора, рекомендуется команду umask внести в стартовый файл командного интерпретатора (в BASH - скрытый файл .bashrc в домашней директории, если он не отображается по команде ls –la, создайте его сами).
Контрольные вопросы
1)Назовите все уровни безопасности ОС Linux;
2)Покажите назначение и примеры использования следующих команд chmod, chown, chgrp ;
3)В чем состоит восьмеричная система назначения прав доступа на объекты;
4)В чем состоит символьная система назначения прав доступа на объекты;
5)Как проводить модификацию имеющихся прав доступа на объект;
6)Какие категории пользователей используются при разграничении прав доступа на объект;
7)Кто такой суперпользователь в системе? Какие привилегии он имеет при назначении прав на объекты Linux;
8)Какие действия пользователи Linux могут проводить с объектом, имея на то разрешение?
9)Что означает “назначение прав с “нуля” ?
10)Какие сведения о файле выводятся по команде ls с расширенным выводом?
Пример выполнения лабораторной работы
Задание. Файл type_r имеет следующие атрибуты: для владельца – на чтение и запись, для группы и остальных только на чтение. Запишите в символьной системе атрибуты данного файла. Назначьте в восьмеричной системе новые атрибуты: всем категориям полные права на файл.
Выполнение.
Символьная система для файла type_r: rw-r--r-- Назначение новых прав: chmod 777 type_r
Порядок выполнения работы
1.Включить компьютер под управлением операционной системы Linux
2.Зайти в систему по своей учетной записи.
3.Зайти в директорию с лабораторными работами.
4.Создать в рабочей директории папку lab2.2 и зайти в нее.
5.Ознакомиться с теоретической частью лабораторной работы.
6.Ознакомиться с лабораторным заданием.
7.Выполнить лабораторную работу с сохранением результатов в папке lab2.2.
8.Ответить на контрольные вопросы.
9.Оформить отчет по лабораторной работе.
10.Показать результаты преподавателю.