Главная страница

ЛАБОРАТОРНЫЕ РАБОТЫ ОС (Для допуска необходимо сделать 1 или 6 л. Практикум по дисциплине Операционные системы (ОС). Цели лабораторных занятий это формирование у будущих бакалавров направлений подготовки 09. 03. 01


Скачать 2.71 Mb.
НазваниеПрактикум по дисциплине Операционные системы (ОС). Цели лабораторных занятий это формирование у будущих бакалавров направлений подготовки 09. 03. 01
Дата15.10.2022
Размер2.71 Mb.
Формат файлаpdf
Имя файлаЛАБОРАТОРНЫЕ РАБОТЫ ОС (Для допуска необходимо сделать 1 или 6 л.pdf
ТипПрактикум
#735270
страница15 из 21
1   ...   11   12   13   14   15   16   17   18   ...   21
Пример 3. Отображение SGID и SUID:
/media/Work/test > ls -l итого 20 drwxr-xr-x 2 root root 4096 2016-06-15 16:18 alex drwx------ 2 root root 4096 2015-06-15 14:20 qqq
-rwxrwsrwx 1 root root 0 2015-07-24 19:42 qwer
В примере 3 видно, что для файла qwert установлен SGID, о чем свидетельствует символ «s» (-rwxrwsrwx). Символ «s» может быть как строчная буква (s), так и прописная (S). Регистр символа только лишь дает дополнительную информацию об исходных установках, т.е. был ли до установки SGID установлен бит, в данном случае на выполнение
(rwxrwsrwx). Если s строчная, то права на выполнение у группы этого файла были до установки SGID. Если S прописная, то группа для этого файла ранее не имела прав на выполнение до установки SGID.
Еще одно важное усовершенствование касается использования
sticky-бита в каталогах. В отличии от установки sticky на каталог, на файл такой бит устанавливать не имеет смысла. Каталог с установленным
sticky-битом означает, что удалить файл из этого каталога может только владелец файла или суперпользователь. Другие пользователи лишаются права удалять файлы, даже если имеют права 7 (rwx), хотя писать
(создавать) файлы в таких каталогах они могут, при условии что имеют права 7 (rwx) Установить sticky-бит в каталоге может только суперпользователь. Sticky-бит каталога, в отличие от sticky-бита файла, остается в каталоге до тех пор, пока владелец каталога или суперпользователь не удалит каталог явно или не применит к нему chmod.
Владелец каталога может удалить sticky-бит, но не может его установить.

Восьмеричное значение stiky-бита: 1000

Символьное: +t
Установить sticky-бит на каталог можно используя команду chmod:

146

chmod 1755 alex - с заменой прав;

chmod +t alex - добавление к текущим правам.
Убрать sticky-бит на каталог можно:

chmod -t allex
Отображение sticky-бит:
/media/Work/test > ls -l итого 20 drwxr-xr-t 2 root root 4096 2016-06-15 16:18 alex drwx------ 2 root root 4096 2015-06-15 14:20 qdir
-rwxr--r-T 1 root root 0 2016-07-24 19:42 qwert
-rw-r--r-- 1 root root 4099 2015-06-11 14:14 sources.list
Видно, что sticky-бит установлен на каталоге alex, а также на файле
qdir, о чем свидетельствует символ (t). Символ «t» может быть представлен как строчной буквой (t), так и прописной (T). Строчная буква отображается в том случае, если перед установкой sticky bit произвольный пользователь уже имел право на выполнение (х), а прописная (Т) — если такого права у него не было. Конечный результат один и тот же, но регистр символа дает дополнительную информацию об исходных установках.
Итак, использование sticky позволяет реализовать каталоги общего пользования, в которые пользователи могут писать файлы, но не могут удалять чужие файлы.
Пример 4. Установка sticky на каталог:
/media/Work/test > ls -l итого 20 drwxrwxrwx 2 root root 4096 2015-07-24 20:54 alex drwx------ 2 root root 4096 2015-06-15 14:20 qqq
# После установки sticky-бита:
/media/Work/test > chmod +t alex
/media/Work/test > ls -l итого 20 drwxrwxrwt 2 root root 4096 2015-07-24 20:54 alex drwx------ 2 root root 4096 2015-06-15 14:20 qqq
1.4 Списки управления доступом (ACL-списки)
Возможностей стандартных прав ОС Linux недостаточно для реализации сложных схем доступа. Списки управления доступом (ACL
Access Control List списки) предоставляют более тонкую организацию управлению доступом пользователей к указанным каталогам и файлам по сравнению с традиционными правами доступа ОС Linux [1].
При использовании ACL-списков можно указать способы, позволяющие каждому из нескольких пользователей иметь доступ к

147 каталогу или файлу.
Недостаток
ACL-списков в снижении производительности системы, поэтому их использование не следует разрешать на файловых системах, хранящих системные файлы, где вполне достаточно традиционных прав доступа Linux. Следует проявлять осторожность при перемещении, копировании или архивировании файлов, поскольку не все утилиты сохраняют ACL-списки. Кроме того, невозможно скопировать ACL-списки в файловые системы, которые их не поддерживают, или в файловую систему, в которой выключена поддержка этих списков.
ACL-список включает в себя набор правил. Правило определяет, как указанный пользователь или группа может получить доступ к файлу, с которым связан ACL-список. Есть два вида правил: правила доступа
(access ACLs) и правила по умолчанию (default ACLs).
Правило доступа определяет информацию о доступе для отдельного файла или каталога. ACL-список по умолчанию принадлежит исключительно каталогу, он определяет информацию доступа по умолчанию (ACL-список) для любого имеющегося в каталоге файла, которому не предоставлен явно заданный ACL-список.
1.4.1 Предоставление возможности использования ACL-списоков
Перед тем как получить возможность использования ACL-списков, нужно установить программный пакет acl. Linux поддерживает ACL- списки на файловых системах ext2, ext3 и ext4. Для использования ACL- списков на файловой системе ext нужно смонтировать устройство с данной файловой системой с ключом acl. Сначала необходимо отредактировать файл со списком файловых систем fstab, указать в нем, на каких разделах
HDD следует учитывать ACL права, затем перемонтировать устройство, как указано в [1].
Для указания поддержки файловой системой ACL-списков необходимо в строку с описанием выбранной файловой системы добавить параметры grpquota,acl,suid и перезагрузить компьютер.
В данной работе указанные операции не выполняются.
Желающие проверить поддержку ACL на своем компьютере могут при необходимости получить дополнительные консультации.
1.4.2 Работа с правами доступа
Утилита getfacl отображает ACL-список указанного файла. При использовании утилиты getfacl для получения информации о файле, который не имеет ACL-списка, она показывает ту же информацию, что и команда ls –l, хотя и в ином формате.
$ ls –l test
-rw-r—r—1 mx mx 9537 Jan 12 23:15 test
$ getfact test

148
# file: test
# owner: aa
# group: aa user:: rw- group:: r— other:: r—
Первые три строки выведенной информации содержат заголовок. В них указывается имя файла, его владелец и группа, с которой связан файл.
В строке, которая начинается со слова user, два двоеточия указывают на то, что в строке показаны права владельца файла. В следущей строке показываются права той группы, с которой связан файл. Со всеми остальными пользователями (other) не могут быть связаны никакие имена.
Чтобы посмотреть, установлены ли ACL-списки на объектах, достаточно воспользоваться командой ls -l: Символ "+" в конце списка стандартных прав сообщает о наличии установленных прав ACL:
Утилита setfacl с ключом –m позволяет добавить или изменить одно или несколько правил в ACL-списке файла. Списки ACL можно задать:

на уровне пользователей - назначаются ACL конкретным пользователям;

на уровне групп - назначаются ACL конкретным группам;

с помощью маски эффективных прав - ограничение максимальных прав для пользователей и/или групп;

для пользователей, не включённых в группу данного файла - это т.н. пользователь «Все остальные»;
Рассмотрим синтаксис командной строки setfacl:
setfacl <опции> <ключ> <список правил> <объект>

<опции> - задает дополнительные опции;

<ключ> - задает режим работы утилиты;

<список правил> - собственно, сами правила доступа к объекту;

<объект> - объект к которому применяется ACL, в большинстве случаев это файл или каталог.
Часто используемые ключи табл. 3:
Таблица 3.
Ключи
Ключ
Описание
--set или -
-set file*
- Устанавливает новые указанные права ACL, удаляя все существующие.
Необходимо, чтобы наравне с задаваемыми правилами ACL были также указаны стандартные права Linux, в противном случае будет давать ошибку;
-m или -M file*
- Модифицирует указанные ACL на объекте. Другие существующие ACL сохраняются.

149
Ключ
Описание
-x или -X file*
- Удаляет указанные ACL права с объекта. Стандартные права
Linux не изменяются.
* - При использовании -M, - -set, -X - разрешения будут браться из указанного файла file, который должен быть заранее подготовлен в формате вывода ACL разрешений командой getfacl. Подготовить файл можно либо вручную, в формате вывода getfacl, либо использовать команду getfacl -R file > file_out. Где file это файл(ы) или каталог(и) с которых нужно снять ACL, а file_out - текстовый файл, в который запишутся снятые ACL права.
Часто используемые опции табл. 4:
Таблица 4
Опции
Опция
Описание
-b
-Удаляет все ACL права с объекта, сохраняя основные права;
-k
-Удаляет с объекта ACL по умолчанию. Если таковых на объекте нет, предупреждение об этом выдаваться не будет;
-d
-Устанавливает ACL по умолчанию на объекте.
-restore=file -Восстанавливает ACL права на объекте из ранее созданного файла с правами.
-R
-Рекрусивное назначение (удаление) прав, то есть с просмотром всех подкаталогов.
Проверить, поддерживает ли тот или иной раздел винчестера ACL, можно попытавшись установить ACL командой setfacl:
/root > setfacl -m u:alexser:rw-,g:root:rw- qqq setfacl: qqq: Operation not supported
Вывод сообщения Operation not supported - операция не поддерживается
- признак того, что ACL-список на том разделе винчестера, где лежит файл
qqq не активирован.
Примеры использования утилиты setfacl.
Рассмотрим примеры использования назначения, модификации ACL.
Выше был приведен вывод команды getfacl для файла test:
$ getfact test
# file: test
# owner: aa
# group: aa user:: rw- group:: r— other:: r—
Теперь добавим к пользователю этого файла пользователя ab:

150
$ setfacl -m u:ab:rwx test
$ getfacl test
# file: test
# owner: aa
# group: aa user::rw- user:ab:rwx user:child:rw- group::r-- mask::rwx other::r—
1.4.3 Маска эффективных прав
Строка, начинающаяся со слова mask, указывает на маску
эффективных прав. Эта маска ограничивает эффективные права, выделенные с помощью ACL-списков группам и пользователям. Она не затрагивает права владельца файла или группы, с которой связан файл. Но, поскольку утилита setfacl всегда устанавливает маску эффективных прав на минимальные ограничительные права доступа к файлу, устанавливаемые в ACL-списке, эта маска не оказывает никакого влияния до тех пор, пока она не будет установлена явным образом после установки для файла ACL-списка. Маску можно установить, указав mask вместо ugo и не указывая имя в команде setfacl. Пример:
$ setfacl –m mask::r--test
$ getfacl test
# file: test
# owner: aa
# group: aa user::rw- user:ab:rwx #effective:r-- user:child:rw- group::r-- mask::rwx other::r--
1.4.4 Установка правил по умолчанию для каталога
Рассмотрим наследование прав объектов. Если не задано иное, то все объекты, создаваемые в каталоге, у которого есть
ACL-списки
, не наследуют права
ACL
каталога, в котором они создаются. Но иногда возникают ситуации, когда необходимо, чтобы все объекты, создаваемые внутри каталога, наследовали его
ACL
права. Эта возможность называются
ACL по умолчанию. Для добавления правил по умолчанию для каталога в команде setfacl используется ключ –d (default). Эти правила применяются

151 ко всем файлам, создаваемым в каталоге, у которых нет явно установленных ACL-списков.
$ ls –ld dir drwxr-xr-x 2 aa aa 4096 2015-01-06 20:05 dir
$ getfacl dir
# file: dir
# owner: aa
# group: aa user::rwx group::r-x other::r-x
Добавление правил по умолчанию для каталога dir
$ setfacl –d –m g:ab:r-x dir
Получение ACL-списка getfacl dir
# file: dir
# owner: aa
# group: aa user::rwx group::r-x other::r-x default:user::rwx default:group::r-x default:group:ab:r-x default:mask::r-x default:other::r-x
Каждое из правил по умолчанию, которое отображает утилита getfacl, начинается со слова default:. Первые два правила по умолчанию и последнее правило по умолчанию определяют права доступа для владельца файла, для группы, с которой связан этот файл, и для всех остальных пользователей. Эти три правила определяют традиционные права доступа
Linux и имеют приоритет над другими ACL- правилами. Третье правило определяет права доступа для группы ab. Далее следует маска эффективных прав.
Следует помнить, что правила по умолчанию относятся к файлам, которые содержатся в каталоге и которым ACL-списки не присвоены явным образом.
Удалить права по умолчанию можно так: setfacl -k dir.
1.4.5 Копирование ACL прав с одного объекта на другой.
Принцип копирования:

Снять ACL c одного объекта

Записать их на другой

152
В документации приведен следующий пример: getfacl file1 | setfacl --set-file=- file2 где file1 - объект с которого снимаем ACL командой getfacl, далее устанавливаем ACL командой setfacl на объект file2. Обратите внимание на запись - -set-file=- в конце указан символ »-», который берет информацию от команды getfacl (со стандартного вывода).
Справедлива будет также такая запись: getfacl file1 | setfacl -M- file2
В этом случае права на file2 не заменяются как при использовании - -set, а добавляются к уже существующим правам ACL.
1.4.6 Копирование прав ACL каталога в права по умолчанию этого
же каталога
getfacl --access dir | setfacl -d -M- dir
В этом примере getfacl получает все права, которые были установлены на каталог dir и устанавливает их на этот же каталог dir, делая их правами по умолчанию. Обратите внимание на ключ - -access у команды getfacl. При вызове getfacl без параметров, она отображает все права ACL, включая права по умолчанию. Здесь же ключ - -access заставляет getfacl показать только права ACL на каталог, а права по умолчанию (если таковые имеются у каталога) - скрыть. Обратный ключ - это ключ -d
2 МЕТОДИКА ВЫПОЛНЕНИЯ
1. Ознакомиться с теоретическими сведениями.
2. Создать группу пользователей с именем g<номер_бригады>1 и пользователя с именем a в этой группе, используя режим командной строки.
3. Создать группу пользователей с именем g<номер_бригады>2 и пользователя с именем b в этой группе, используя графический интерфейс пользователя.
4. В домашнем каталоге создать по одному каталогу и файлу на каждого пользователя.
5. Разрешить группе чтение, владельцу - чтение и запись файла. Для каталога группе разрешить чтение и выполнение. Для выполнения задания использовать запись прав в 8 сс и маску прав.
6. На один из созданных каталогов установить sticky-бит.
7. Записать в каталог со sticky-битом по копии файла от каждого пользователя бригады, выполнить удаление записанных файлов (проверка действия sticky-бита).
8. Скопировать один из выполняемых файлов, созданных в работе 5 в один из созданных каталогов и установить ему бит SGID. С помощью

153 команды ls –l получить результаты установки.
9. Проверить, установлена ли поддержка ACL-списков на компьютере, на котором выполняется лабораторная работа.
10. На компьютере с поддержкой ACL-списков установить для одного из созданных каталогов правила по умолчанию и получить результаты установки с помощью утилиты getfacl.
11. Ответить на контрольные вопросы.
3 ОТЧЕТ О РАБОТЕ
Готовится в письменном виде один на бригаду. Содержание отчета:
1. Ход выполнения заданий 2 - 6 – использованные команды и полученные результаты.
2. Результаты выполнения заданий 7 - 10.
4 КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Группы пользователей, назначение, создание и использование.
2. Типы файлов файловой системы ext3fs.
3.
Управление доступом к
файлам и каталогам в ОС Linux.
4.
Команда просмотра прав доступа на объекты.
5.
Стандартные права доступа к объектам файловой системы ОС Linux и формы их записи.
6. Установка прав доступа с помощью команды chmod.
7. Назначение битов SUID, SGID.
8. Назначение бита Sticky.
9. Способы установки битов SUID, SGID, Sticky.
10. Необходимость использования ACL-списков.
11. Недостатки ACL-списков.
12. Виды ACL-списков. Содержимое ACL-списков.
13. Подключение ACL-списков.
14. Назначение утилит getfacl и setfacl.
15. Проверка наличия ACL-списка у файла или каталога.
16. Маска эффективных прав – назначение и использование.
17. Установка правил по умолчанию для каталога.
18. Копирование ACL- списков.
19. Создание нового пользователя в режиме командной строки.
20. Создание нового пользователя в графическом режиме. Управление пользователями.

154
ЛАБОРАТОРНАЯ РАБОТА №9 ОБРАБОТКА СТРОК (РАБОТА С
ТЕКСТОВЫМИ ДАННЫМИ)
Цель работы – практическое знакомство со способами эффективной обработки текста при помощи интерфейса командной строки и набора стандартных утилит
1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1.1 Ввод и вывод. Перенаправление ввода и вывода
Каждая программа работает с данными определенного типа: текстовыми, графическими, звуковыми и т. п. Основной интерфейс управления системой в Linux - это терминал, который предназначен для передачи текстовой информации от пользователя системе и обратно.
Поскольку ввести с терминала и вывести на терминал можно только текстовую информацию, то ввод и вывод программ, связанных с терминалом, тоже должен быть текстовым. Однако необходимость оперировать с текстовыми данными не ограничивает возможности управления системой, а, наоборот, расширяет их. Пользователь может прочитать вывод любой программы и проанализировать, что происходит в системе, а разные программы оказываются совместимыми между собой, поскольку используют один и тот же вид представления данных - текстовый.
"Текстовость" данных - всего лишь договоренность об их формате. Никто не мешает выводить на экран нетекстовый файл, однако пользы в этом будет мало. Во-первых, раз уж файл содержит не текст, то не предполагается, что пользователь сможет что-либо понять из его содержимого. Во-вторых, если в нетекстовых данных, выводимых на
терминал, случайно встретится управляющая последовательность,
терминал ее выполнит. Например, если в скомпилированной программе записано некоторое число в виде четырех байтов:
27
,
91
,
49
и
74
, соответствующий им
1   ...   11   12   13   14   15   16   17   18   ...   21


написать администратору сайта