Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_7.doc
Скачиваний:
6
Добавлен:
17.11.2019
Размер:
368.64 Кб
Скачать

Лабораторная работа 7 Учетные записи. Права доступа

Цель: Изучить методы создания и настройки основных компонентов системы безопасности Linux – учетных записей и прав доступа.

Теоретические сведения

1. Пользователи и группы

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

Кроме пользователей в Linux для разграничения прав существуют группы. Каждая группа, так же как и отдельный пользователь, обладает неким набором прав доступа к различным компонентам системы, и каждый пользователь-член этой группы автоматически получает все права группы. То есть группы нужны для группировки пользователей по принципу одинаковых полномочий на какие-либо действия. Каждый пользователь может состоять в неограниченном количестве групп и в каждой группе может быть сколько угодно пользователей.

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

Например, в Ubuntu есть группа: admin. Любой член этой группы получает неограниченные административные привилегии. Создаваемый при установке Ubuntu пользователь автоматически становится членом группы admin.

1.1 Суперпользователь

Во всех системах на базе Linux всегда есть один привилегированный пользователь – root.

Полномочия этого пользователя не ограничены ничем, он может делать в системе абсолютно всё, что угодно. Кроме того, большинство системных процессов работают от имени root. Использование такого всемогущего пользователя крайне опасно, ибо любая ошибка может привести к катастрофическим последствиям, вплоть до полного уничтожения системы. Обычный же пользователь в Linux вообще говоря никак не может повлиять на работоспособность системы, в частности, не может устанавливать и удалять программы, управлять системными настройками и изменять файлы вне своего домашнего каталога. Поскольку использование суперпользователя крайне опасно, в Ubuntu он спрятан внутри системы, а управлением занимаются обычные пользователи со специальными административными привилегиями.

1.2 Администратор

Администратор в Ubuntu по умолчанию может по запросу делать всё то же самое, что и суперпользователь, однако случайно что-то испортить из-под администратора нельзя, т.к. перед выполнением каждого опасного действия система спрашивает у пользователя-администратора его пароль. Вообще говоря, администратор является обычным пользователем, однако при необходимости он может вмешаться в работу системы, но для этого ему потребуется ввести свой пароль (рисунок 1).

Рисунок 1. Запрос пароля для предоставления привилегий

Главное отличие администратора от суперпользователя как раз и заключается в необходимости вводить пароль для выполнения любого потенциально опасного действия. Если система спрашивает у вас пароль, значит, вы собираетесь как-то вмешаться в её работоспособность. Поэтому элементарная внимательность спасёт вас от ошибок.

Кстати, если вы введёте в подобное окно пароль не правильно, то система просто закроет его и ничего вам не скажет. Соответственно и операция, для которой требовались права администратора, выполнена не будет.

1.3 Создание пользователя при помощи графического интерфейса

Создавать и управлять пользователями и группами можно с помощью специального инструмента, находящегося в меню Система→Администрирование→Пользователи и группы (рисунок 1).

Рисунок 1. Программа управления пользователями и группами

Тут отображаются все учетные записи пользователей, которые присутствуют в системе. Для добавления, нажмите на кнопку "Добавить", после чего у вас будет затребован пароль. После ввода пароля, откроется окно создания нового пользователя (рисунок 2).

Рисунок 2. Окно создания нового пользователя

Введите Имя и имя, которое будет служить, как логин и нажмите "OK".

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

Рисунок 3. Окно задания пароля

Нажмите «ОК» и еще раз введите пароль. Вновь появиться основное окно программы (рисунок 1).

Для добавления пользователя в разные группы, нажимаем на "Управление группами" (рисунок 4).

Рисунок 4. Окно управления свойствами групп

В появившемся списке групп, в которые может быть добавлен созданный пользователь, выберите нужную группу и нажмите "Свойства" (рисунок 5).

Рисунок 5. Окно свойств группы

Нажмите «ОК», закройте программу и перезагрузитесь. При входе в систему, вам будет предложено, под кем войти.

1.4 Создание пользователя при помощи консоли

Для создания пользователя или группы в терминале необходимо выполнить одну из следующих команд:

groupadd [параметры] имя_группы

-g идентификатор_группы

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

-r

Указывает команде создать системную учетную запись. При этом автоматически будет подобран идентификатор ниже 500

useradd [параметры] имя_нового_пользователя

-b

Базовая директория для домашней папки нового пользователя

-c

Дополнительные данные о новом пользователе

-d

Домашний каталог для нового пользователя

-D

useradd -D [параметры]: Выводит (при отсутствии дополнительных параметров) или задает значения параметров по умолчанию

-e

Определяет дату, когда учетная запись нового пользователя будет отключена. Дата задается в формате ГГГГ-ММ-ДД (то есть четыре цифры года, две - месяца и две - дня)

-f

Устанавливает количество дней между окончанием срока действия пароля и отключением учетной записи

-g

Имя или ID группы, к которой будет принадлежать новый пользователь. При отсутствии параметра -g при выполнении команды useradd будет добавлена группа, имя которой совпадает с именем пользователя, которого вы хотите создать.

-G

Список дополнительных групп, к которым будет принадлежать новый пользователь

-h

Отображает помощь по данной команде

-k

Использовать эту альтернативную каркасную директорию

-K

Перезаписывает настройки по умолчанию в /etc/login.defs

-l

Не добавлять пользователя в БД журналов последних действий и неуспешных действий

-m

Создавать домашнюю папку для нового пользователя

-M

Не создавать домашнюю папку для нового пользователя

-N

Не создавать с таким же именем как и новый пользователь

-o

Разрешать создавать пользователя с неуникальным UID

-p

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

-r

Создать системную учетную запись

-s

Указывает командную оболочку для нового пользователя

-u

UID – пользовательский ID новой учетной записи. Рекомендуется, чтобы он был больше 99

-U

Создать группу с таким же именем как и новая учетная запись

1.5 Создание пользователя вручную

За описание учетных записей отвечают 2 файла: /etc/passwd и /etc/group, хотя реально в большинстве дистрибутивов применяются три файла.

Файл /etc/group

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

  1. имя группы;

  2. пароль в зашифрованном виде;

  3. идентификатор группы, представленный числом;

  4. список пользователей, входящих в группу, разделенных запятыми без пробелов.

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

Идентификатор суперпользователя всегда равен 0.

Четвертое поле не обязательно для заполнения.

Кроме этого, не рекомендуется задавать группам имена длиннее восьми символов, для поддержания совместимости с UNIX.

Файл /etc/passwd

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

  1. имя пользователя;

  2. пароль пользователя;

  3. идентификатор пользователя;

  4. идентификатор группы пользователя;

  5. поле, где указываются данные о пользователе (имя, номер телефона и т.д.);

  6. начальный (или домашний) каталог пользователя;

  7. регистрационная оболочка.

Если пароль пользователя не указан, то вместо параметра 2 стоит буква x, запись пользователя считается неактивной. Идентификатор root всегда должен быть равен 0. Если для пользователя создана уникальная группа, идентификатор пользователя следует сделать равным идентификатору этой группы. Пятое поля не обязательно для заполнения и может равняться 0.

Файл /etc/shadow

Не всегда пароль указывается именно в файле /etc/passwd. В этом файле пароль указывается в незашифрованном виде, поэтому была найдена альтернатива в виде файла /etc/shadow, в котором пароль шифруется. Параметры строк этого файла в порядке их следования:

  1. имя пользователя;

  2. пароль в зашифрованном виде;

  3. количество дней с 01.01.1970 года, когда пароль был изменен в последний раз;

  4. количество дней, за которые пароль может быть изменен;

  5. количество дней, по прошествии которых пароль должен быть изменен;

  6. количество дней перед окончанием срока действия пароля, за которые пользователь должен быть оповещен о необходимости смены пароля;

  7. количество дней, по прошествии которых со дня окончания срока действия пароля, учетная запись должна быть отключена;

  8. количество дней с 01.01.1970 года, после которых учетная запись должна быть отключена;

  9. зарезервированное поле.

Для управления данными файлами есть несколько команд:

pwconv (без параметров)

Создает на базе файла /etc/passwd файл /etc/shadow.

pwunconv (без параметров)

Переписывает всю информацию о паролях в файл /etc/passwd и удаляет файл /etc/shadow.

grpconv (без параметров)

На базе файла /etc/group создает файл /etc/gshadow.

grpunconv (без параметров)

Создает файл /etc/group на основе уже имеющегося файла /etc/group и файла /etc/gshadow.

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

Чтобы создать новую учетную запись вручную, выполните следующие шаги:

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

2. Сначала создадим для нового пользователя отдельную группу (можно обойтись уже существующей группой). Добавим в файл /etc/group следующую строку:

tom:x:502:tom

Идентификатор группы (в данном примере - 502) обязательно должен быть уникальным для этой группы. Если он уже указан в другой группе, для группы tom задайте другой идентификатор, причем постарайтесь, чтобы он был больше 99. Последнее поле заполнять необязательно.

3. Теперь необходимо зарегистрировать пользователя в файле /etc/passwd. Для этого добавим в файл /etc/passwd строку, схожую со следующей:

tom:x:502:502:Tom:/home/tom:/bin/bash

Как и в предыдущем примере, следует внимательно отнестись к идентификатору пользователя и сделать его уникальным. Если вы выбрали идентификатор группы tom, не равный 502, то в четвертом поле укажите его. Домашний каталог можно выбрать любой - это зависит от администратора системы. Интерпретатор команд также может быть любым - это зависит от пользователя.

Если в вашей системе используется файл /etc/shadow. придется зарегистрировать нового пользователя и в нем. Добавим в этот файл такую строку:

tom: * : : 0 : 99999: 7 : : :

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

4. Затем требуется создать каталог для пользователя. Это просто, однако есть один момент: в Linux программы хранят свои файлы конфигурации в каталоге пользователя. Для определения файлов конфигурации, которые должны находиться в каталоге пользователя, существует каталоге /etc/skel. Файлы, находящиеся в этом каталоге, должны быть в домашнем каталоге пользователя, поэтому можно просто скопировать этот каталог:

cp -R /etc/ske1 /home/tom

Смените группу владельца и владельца с помощью команды chown:

chown -R tom:tom /home/tom

5. Теперь необходимо задать пароль. Чтобы присвоить новому пользователю пароль, выполним команду:

passwd tom

После ввода команды система попросит задать новый пароль

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]