Оценивание работ проводится не позднее даты проведения следующего практического занятия.

ЛАБОРАТОРНАЯ РАБОТА №8

УПРАВЛЕНИЕ ПОЛЬЗОВАТЕЛЯМИ И ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ

В ОС LINUX

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

Оборудование:

Аппаратная часть: персональный компьютер с правами администратора.

Программная часть: программа VirtualBox, виртуальная машина с установленной ОС Linux, текстовый процессор Microsoft Word.

Краткие теоретические сведения:

Основные сведения

Для создания группы используется команда addgrоup, например,

addgroup g301

Для создания пользователя и пароля используется команда adduser. Например,

adduser anton

passwd anton

При создании группы, пользователя в файлы passwd, group каталога /etc вносится информация о пользователе и группе. Одна учетная запись соответствует одному пользователю и одной группе. Учетная запись пользователя содержит следующую информацию: имя пользователя, пароль в закодированном виде, целочисленный идентификатор пользователя, целочисленный идентификатор группы, комментарий, каталог пользователя, интерпретатор команд. Например, anton:*:100:1000::/home/usr:/bin/bash

Учетная запись группы содержит следующую информацию: имя группы, пароль в закодированном виде, целочисленный идентификатор группы, список имен пользователей группы. Например, g301:*:1000: anton

Чтобы удалить пользователя, группу используются команды userdel, delgroup соответственно.

Чтобы изменить пользовательскую, групповую принадлежность, используются команды chown, chgrp. Например,

chown user file1 chgrp it402 file1

Изменение пароля осуществляется командой passwd, например,

passwd anton

Введите пароль, повторите пароль, тем самым вы измените пароль указанному пользователю.

2. Права доступа к файлам и каталогам

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

Вы можете проверить, какие права по умолчанию установлены для файла, который вы создали. Для этого можно воспользоваться командой uname. Ниже дан практический пример создания файла с помощью команды touch и проверки прав доступа к нему с помощью команды ls:

$ touch file

$ ls –l file

-rw-rw-r-- 1 bbal bball 0 jul 23 12:28 file

Рассмотрим вывод команды ls подробнее.

Права доступа к файлу представляют собой группу символов: -rw-rw-r--. Первый символ указывает на тип объекта. Дефис говорит о том, что это обычный файл, d означает каталог, c – символьное устройство, b указывает на блок-ориентированное устройство.

Права доступа указываются последовательно – для пользователя, группы и всех остальных. Отсутствие права на какой-либо вид доступа обозначается знаком дефиса. Тремя основными типами прав доступа являются: r – право на чтение, w – право на запись и x – право на выполнение.

Далее следует число ссылок на данный файл.

Владелец. Другими словами, здесь указывается, какой учетной записи принадлежит этот файл. Изменить владельца можно с помощью команды chown.

Группа, к которой принадлежит пользователь. Обычно члены этой группы имеют более свободные права доступа к файлу, в отличие от всего остального мира.

Размер файла и дата его создания (модификации).

Назначение прав доступа

Права доступа к объекту могут быть заданы двумя способами: в цифровой или в буквенной форме. При использовании буквенной формы эти три категории обозначаются так: u – пользователь (владелец), g – группа, o – остальные и a – все эти категории вместе. Тремя основными типами прав доступа являются: r – право на чтение, w – право на запись и x – право на выполнение. Комбинации r, w и x для трех категорий и являются правами доступа к файлу:

User Group Others

rwx rwx rwx

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

4 означает право на чтение;

2 означает право на запись (модификацию);

1 означает право на выполнение.

Предыдущий пример (-rw-rw-r--) в восьмеричной нотации записывается короче – 664. Получается это число просто: старший разряд – права владельца файла, т.е. чтение и запись (4+2), далее идет группа (4+2) и весь остальной мир (только чтение – 4).

Права доступа к каталогам

В Linux, как и в остальных UNIX, каталоги также считаются файлами. Например, выполним следующую команду ls, чтобы увидеть разрешения на доступ:

$ mkdir foo

$ ls –ld foo

drwxrwxr-x 2 bball bball 4096 jul 23 12:37 foo

В данном примере команда mkdir создает каталог. Команда ls с параметром –ld отображает разрешения на доступ и иную информацию, касающуюся этого каталога в целом, но не его содержание. Здесь можно видеть, что права доступа к каталогу имеют значения 775 (владелец имеет все права 4+2+1, группа также все права, а весь остальной мир не может ничего изменять в нем 4+1).

Отсюда видно, что владелец и члены группы могут выводить содержание каталога и записывать в него. Все остальные пользователи могут только выводить содержание каталога. (Чтобы увидеть содержание каталога, необходимо иметь разрешение на выполнение).

Вы заметили, что в выходных данных команды ls в правах доступа стоит первой буква d. Это значит, что данный файл является каталогом; у обычного файла на этом месте стоит пробел. Другие буквы указывают на специальный тип файла. Например, если с помощью команды ls вывести информацию о файле устройства для последовательного порта, то можно увидеть следующее:

$ ls –l /dev/ttyS0

crw-rw---- 1 root uucp 4,64 Mar 23 23:38 /dev/ttyS0

Файл /dev/ttyS0 представляет символьное устройство (последовательный порт); владеет данным файлом пользователь root и этот файл доступен также любому члену группы uucp. Права доступа к файлу имеют значения 660 (чтение+запись, чтение+запись, нет прав).

Изменить права доступа к файлу можно с помощью команды chmod. Чтобы задать желаемое изменение в этой команде используют разные формы записи, включая восьмеричную и мнемоническую. В мнемонической форме параметры команды chmod обозначают следующее (со знаком плюс (+) они используются для добавления права на доступ, со знаком минус – для их удаления):

u Добавить (или удалить) право на какую-либо операцию с файлом (каталогом) для пользователем.

g Добавить (или удалить) право для группы.0

o Добавить (или удалить) право для всех остальных.

a Добавить (или удалить) право всем пользователям (all).

rДобавить (или удалить) право на чтение.

wДобавить (или удалить) право на запись.

xДобавить (или удалить) право на выполнение.

Из комбинации этих слов и складывается указание о том, как следует изменить права доступа. Например, если создать файл, скажем, readme.txt, то для этого файла будут установлены разрешения, используемые по умолчанию (они определяются маской unmask в файле /etc/bsdhrc);

-rw-rw-r-- 1 bball bball 12 Oct 2 16:48 readme.txt

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

$ chmod –aw readme.txt

$ ls –l readme.txt

-r--r--r-- 1 bball bball 12 Oct 2 16:48 readme.txt

Теперь никто не сможет записывать в файл. Впрочем, владелец, если файл находится в его домашнем каталоге или каталоге /tmp, сможет изменять этот файл – поскольку имеет право на доступ к этим каталогам. Чтобы восстановить право на чтение и запись для владельца, можно выполнить такую команду:

$ chmod u+rw readme.txt

$ ls –l readme.txt

-rw------- 1 bball bball 12 Oct 2 16:48 readme.txt

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

$ chmod 600 readme.txt

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

Работа в качестве root

В UNIX и Linux пользователь root, суперпользователь, – это царь и бог в системе. У него специальная учетная запись, которая разрешает ему делать все, что ему заблагорассудится. После регистрации в качестве пользователя root, вы имеете возможность полностью разрушить работающую систему просто вызвав команду rm:

# rm –fr /

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

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

Добавление пользователей

Чтобы быстро добавить пользователя, выполните команду useradd и задайте в ней имя пользователя:

# useradd winky

После добавления пользователя необходимо с помощью команды passwd ввести начальный пароль для этого пользователя:

# passwd winky

Changing password for user winky.

New password: Retype new password:

Passwd: all authentication tokens updated successfully.

Если для нового пользователя не ввести начальный пароль, то он не сможет зарегистрироваться и войти в систему. Чтобы увидеть используемые по умолчанию параметры для нового пользователя, выполните команду useradd с параметром –D:

# useradd –D

Group=100 HOME=/home INACTIVE=-1 EXPIRE=

SHELL=/bin/bash SKELL=/etc/skel

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

Удаление пользователей

Для удаления учетной записи используется команда userdel. Эта команда удаляет запись, принадлежащую данному пользователю, из системного файла /etc/passwd. Чтобы удалить все его файлы и каталоги (например, файл почтовой очереди в каталоге /var/spool/mail), следует воспользоваться параметром -r:

# userdel –r winky

В противном случае вам придётся вручную удалять все эти файлы.

Выключение системы

Для выключения системы используйте команду shutdown. Эта команда имеет некоторое число опций, позволяющих например, выключить машину в заранее определенное время. Но если нужно выключить машину немедленно, можно воспользоваться опциями –h или halt:

# shutdown –h now

или

# shutdown –h 0

Linux завершит работу.

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

Перезагрузка системы

Для перезагрузки системы также можно воспользоваться командой shutdown. Если необходимо перезагрузить систему, воспользуйтесь опцией –r (reboot); для немедленной перезагрузки укажите после опции now или 0 (ноль):

# shutdown –r now

или

# shutdown –r 0

Другими командами, которые можно использовать для выключения системы и её перезагрузки, являются halt и reboot.

Ход работы:

Задание 1. Запустить Linux.

Задание 2. Запустить консоль Linux и войти в систему под пользователем root.

Для этого найдите на рабочем столе значок и щелкните по нему мышью.

В результате откроется окно программы-оболочки Bash. Это окно очень напоминает командную строку Windows. В окне этой программы вы видите приглашение: dsl@box:~$

Введите после приглашения команду sudo su: dsl@box:~$ sudo su

В результате приглашение примет такой вид:

[/home/dsl]#

Здесь символ «#» в командной строке указывает на то, что вы работаете из-под пользователя root.

Введите команду whoami (эта команда сообщает имя, с которым вы вошли в систему). Завершите работу пользователя root в системе. Для этого наберите в командной строке exit.

Задание 3. Добавьте в систему нового пользователя.

Войдите в систему под пользователем root.

Добавьте в систему пользователя с именем student (используйте команды useraddи

passwd): Useradd student

Passwd student

После ввода команды passwd student, на экране появится сообщение:

Enter new password:

Вы должные задать пароль для пользователя (не менее 5 символов) и нажать <Enter>. Обратите внимание, что при вводе пароля, он не отображается на экране. После этого выведется сообщение:

Re-enter new password:

Вы должны ещё раз ввести тот же самый пароль, который был вами задан для пользователя

student. После нажатия на клавишу <Enter> на экран выведется:

Password changed.

Итак, вы зарегистрировали нового пользователя в системе и задали ему пароль, теперь можно зайти под этим пользователем, воспользовавшись командой login:

[home/dsl]# loginBox login: studentPassword:

После ввода пароля вы увидите приглашение: student@tty0[/]$

Введите команду whoamiи убедитесь в том, что вы зашли в систему из-под пользователя student.

Для завершения работы с пользователем воспользуйтесь командой logout.

Задание 4. Перейти в корневой каталог и просмотреть его содержимое

Перейдите в корневой каталог: cd /

Просмотрите его содержимое командой lsлибо dir.

Можно использовать команду lsс дополнительными опциями: ls –l

Задание 5. Ознакомьтесь с файловым менеджером Midnight Commander

Запустите оболочку Bash. Для этого щелкните по значку ATerminalна рабочем столе. Наберите в консоли команду mc.

В результате откроется окно программы Midnight Commander, очень похожей на Norton Commander и FAR Manager. Рассмотрим основные элементы окна этой оболочки. Большую часть окна занимает левая панель, правая панель. Ниже этих панелей располагается строка, позволяющая вводить команды Linux. Ещё ниже располагается строка, содержащая краткое напоминание о назначении функциональных клавиш (говорят также «горячих») программы. В верхней части окна располагается строка меню.

Рассмотрим назначение некоторых клавиш и клавиатурных команд, применяемых при работы с Midnight Commander:

Таблица 3. Назначение клавиш оболочки Midnight Commander

Клавиши Назначение
TAB переключение между панелями
F3 просмотр файла
F4 редактирование файла
F5 копирование файла
Клавиши Назначение
F6 переименование (перемещение) файла
F7 создание каталога
F8 удаление файла
F9 активизация меню
F10 выход и командной оболочки
CTRL+O убрать обе панели
CTRL+U поменять панели местами
Insert пометка файлов
серый плюс выбор группы файлов (работает при включенном режиме Num Lock)

Для выбора файла в панели можно использовать клавиши управления курсором (стрелки), Page Up, Page Down.

Используя описанные в табл. 3 команды выполните следующие действия: Используя клавиши управления курсором, выберите подсветкой каталог и раскройте его содержание, нажав клавишу <Enter>.

Перейдите в корневой каталог. Для того чтобы переходит в родительский каталог, необходимо выбирать подсветкой пункт /..

Перейдите в каталог /ramdisk

Создайте в каталоге /ramdisk подкаталог student.

Скопируйте в каталог /ramdisk/student каталог ~home (он находится в корневом каталоге /)

Выйдите из Midnight Commander, нажав F10.

Задание 6. Навигация по файловой системе из командной строки

Запустите программу оболочку bash.

Зайдите в каталог /ramdisk/student с помощью команды cd: dsl@box:~$ cd /ramdisk/student

dsl@box:/ramdisk/student$ Перейдите в корневой каталог: dsl@box:/ramdisk/student$ cd /dsl@box:/$

Перейдите в домашний каталог (домашний каталог обозначается символом «тильда» ~):

dsl@box:/$ cd ~

dsl@box:~$

Задание 7. Работа с текстовым редактором Vi

Запустите программу оболочку bash.

Перейдите в каталог /ramdisk/student

Создайте в каталоге /ramdisk/student текстовый файл file1.txt: dsl@box:/ramdisk/student$ vi file1.txt

Чтобы начать вводить текст нажмите одну из клавиш a, i или o. Для начала ввода текста можно также воспользоваться клавишей <Insert>. Напечатайте в текстовом файле в первой строке свою фамилию и имя, номер группы. В последующих строках наберите произвольный текст. В конце файла ещё раз напечатайте свою фамилию и имя. Ввод каждой из строк заканчивается нажатием клавиши <Enter>.

Сохраните файл и выйдите из текстового редактора. Для этого сначала нажмите <Escape>;

потом напечатайте: wq и нажмите <Enter>.

Просмотрите созданный вами файл. Для этого вновь выполните команду cat:

dsl@box:/ramdisk/student$ cat file1.txt

Задание 8. Управление файлами

Зайдите в каталог /ramdisk/student.

Переименуйте файл file1.txt в file.txt.

Создайте копию файла file.txt под именем file2.txt.

Удалите файл file.txt.

Найдите в файле file2.txt строки, содержащие ваше имя и отобразите их на экране.

Задание 9. Задание прав доступа к файлам и каталогам

Зайдите в каталог /ramdisk/student

Просмотрите, какие права установлены для файла file2.txt. Для этого воспользуйтесь командой ls:

dsl@box:/ramdisk/student$ ls –l file2.txt

-rw-rw-r-- 1 dsl staff 111 Nov 18 06:41 file2.txt

Установите права для файла file2.txt следующим образом: владелец, группа и все остальные имеют на запись, чтение и выполнение:

dsl@box:/ramdisk/student$ Chmod 777 file2.txt

Задание 10. Работа с сетевыми утилитами

В Linux имеется множество утилит для работы с сетью. Рассмотрим некоторые из них. Запустите консоль. Зайдите под пользователем root.

Выполните команду ifconfig(название команды происходит от «Interface Confuguration»).

Для этого наберите в командной строке ifconfigи нажмите <ENTER>.

С помощью команды можно также менять ip-адрес для сетевой карты. Наберите следующую команду:

[/home/dsl]# ifconfig eth0 192.168.192.130

В результате ip-адрес вашего компьютера будет 192.168.1.130. Чтобы убедиться в этом наберите команду ifconfig ещё раз:

[/home/dsl]# ifconfig

Если сетевых карт несколько, то остальные сетевые карты обозначаются eth1, eth2…

«Пропинговать» какой-либо узел (то есть проверить работоспособность протоколов TCP/IP

на компьютере) можно командой Ping.Например:

[/home/dsl]# ping 192.168.192.130.

В результате на указанный узел будут отправляться пакеты до тех пор, пока не будет нажата комбинация клавиш Ctrl+C.

Задание 11. Получение справки по командам

Откройте консоль.

Получите справку по команде cd. Для этого введите в командной строке help cd

Аналогичным образом получите справку для команд: dir, su, help.

Задание 12. Перезагрузка и выключение компьютера

Перезагрузите компьютер. Для этого откройте оболочку bash. Зайдите под пользователем root. Введите в командной строке reboot.

Вновь запустите Linux. Откройте оболочку bash и выключите компьютер командой halt.

4. Обеспечение безопасности

ОС семейства UNIX хранит следующую информацию о файлах: имя файла, тип файла, размер файла, физическое расположение файла, время последнего доступа, идентификаторы владельца, группы, права доступа и др. Код, определяющий полномочия на доступ к файлу, позволяет защитить его от несанкционированного доступа. Просмотреть права доступа к файлу можно командой ls с ключом l.

Существует три категории пользователей: владелец; группа; все остальные.

Каждой категории пользователей можно читать, редактировать, выполнять файл как программу. Для назначения прав каждой категории пользователей отведена тройка бит. Старший бит тройки отвечает за чтение, второй – за редактирование, младший – за выполнение. Изменить код доступа к файлу можно командой chmod.

Спецификация команды: chmod <код> <файлы>

Пример использования команды chmod: chmod 777 myfile.com

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

Вышеописанный способ называют абсолютным способом установки прав. Кроме того, можно воспользоваться и относительным способом изменения прав на доступ к файлу. Для этого также используется команда chmod.

Спецификация команды: chmod <изменения> <файлы>

Изменения можно представить следующей формулой: W op D, где

W принимает значения: u – владелец; g – группа; a – все; o – остальные. op принимает значения:

+ добавить;

- забрать;

= установить.

D принимает значения:

r – чтение;

w – редактирование;

x – выполнение.

Примеры:

chmod u+x file1 – Добавить владельцу право на выполнение этого файла.

chmod u+w g-r file2 - Добавить владельцу право на редактирование этого файла, у группы забрать права на чтение.

chmod a+rwx file3 – Всем категориям пользователей разрешить все.

Задание для самостоятельной работы:

1. Войдите в систему непривилегированным пользователем. Создайте в каталоге /home свой каталог.

2. Создайте в нем несколько файлов разными способами: CAT, VI, TOUCH. Просмотрите содержимое каталога /home в длинном формате. Определите права у каталогов и файлов, задаваемые системой по умолчанию (для каталога /home).

3. Измените права созданному каталогу: запретите пользователю писать (использовать восьмеричный код для изменения прав).

4. Просмотрите содержимое каталога /home в длинном формате. Убедитесь в произведенном изменении.

5. Создайте в своем каталоге еще один файл. Объясните поведение системы. Измените права созданному каталогу: запретите всем всё (использовать восьмеричный код для изменения прав).

6. Просмотрите содержимое каталога /home в длинном формате. Убедитесь в произведенном изменении.

7. Просмотрите содержимое своего каталога. Объясните поведение системы. Назначьте права созданному каталогу: разрешить пользователю всё, группе и всем остальным – только читать (использовать относительные установки для изменения прав).

8. Просмотрите содержимое каталога /home в длинном формате. Убедитесь в произведенном изменении.

9. Выполните пункты 6, 9 еще раз. Объясните поведение системы.

10. Измените права одному из созданных файлов: запретите пользователю писать (использовать восьмеричный код для изменения прав).

11. Просмотрите содержимое своего каталога в длинном формате. Убедитесь в произведенном изменении.

12. Откройте этот файл в текстовом редакторе VI. Добавьте в файл дополнительную информацию. Выйдите из редактора с сохранением. Объясните поведение системы.

13. Измените права этому файлу: запретите всем всё (использовать восьмеричный код для изменения прав).

14. Просмотрите содержимое своего каталога в длинном формате. Убедитесь в произведенном изменении.

15. Отобразите содержимое этого файла (использовать, например, команду CAT). Назначьте права созданному файлу: разрешить пользователю всё, группе – читать и писать, всем остальным – только читать (использовать относительные установки для изменения прав).

16. Просмотрите содержимое своего каталога в длинном формате. Убедитесь в произведенном изменении.

17. Переключитесь на другое терминальное устройство. Войдите в систему суперпользователем. Создайте еще одного пользователя.

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

19. Определите возможность этого пользователя работать с Вашими файлами. Переключитесь на первое терминальное устройство. Измените одному из файлов пользовательскую принадлежность. Измените этому файлу групповую принадлежность.

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

Контрольные вопросы:

Какие основные каталоги содержаться в корневом каталоге в Linux?

Какую команду необходимо использовать, чтобы просмотреть содержимое каталога?

Как обозначаются родительский каталог и домашний каталог пользователя?

Какая команда используется для навигации по файловой системе?

Как запустить текстовый редактор vi?

Какие клавиши нужно нажать, чтобы начать вводить текст в этом текстовом редакторе?

Как сохранить текст и выйти из программы vi?

Как удалить всю строку целиком в текстовом редакторе vi?

Какие ещё команды vi для работы с текстом вы знаете?

Как просмотреть содержимое текстового файла?

Какой командой осуществляется поиск в файле и вывод на экран строк, содержащих заданный текст?

Какие существуют права доступа к файлам и каталогам?

Как задать права для файла, чтобы он был доступен только для чтения для всех пользователей; для выполнения и записи – только для владельца файла?

Как войти в систему Linux?

Как добавить, удалить нового пользователя?

Как завершить работу с системой Linux?

Для чего предназначена программа Midnight Commander?

Почему нужно быть особенно осторожным при работе в системе Linux под пользователем root?

Что означают права доступа к файлу, обозначенные числом 762?

Какие команды нужно знать, чтобы добавить пользователя в систему?

Как удалить пользователя в Linux?

Критерии оценивания работы:

«Зачет»выставляется при наличии отчета по практической работе в электронном виде, содержащего результаты выполнения заданий №1–12 раздела «Ход работы».

В противном случае выставляется «незачет».

При желании студент может выполнить задания для самостоятельной работы. Для получения оценки «3» («удовлетворительно») необходимо в полном объеме и правильно выполнить задания №1–11, для получения оценки «4» («хорошо») – задания №1–16, для получения оценки «5» («отлично») – задания №1–20.

Оценивание работ проводится не позднее даты проведения следующего практического занятия.

Наши рекомендации