Глава 5. Практическое занятие по безопасности UNIX

Содержание

Методические указания по командам управления безопасностью в UNIX
Команды по управлению правами
Команды по управлению пользователями
Резюме
Дополнительные материалы
Практическое занятие. Управление доступом. Управление пользователями
Сценарий: Вход в систему и завершение сеанса
Сценарий: Изучение базовых прав доступа
Сценарий: Переход в режим суперпользователя
Сценарий: Изучение базы данных пользователей
Сценарий: Добавление и удаление пользователей
Задания для самоподготовки
Сценарии практического занятия на тему: Управление доступом. Управление пользователями

Методические указания по командам управления безопасностью в UNIX

Команды по управлению правами

chmod

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

Команда chmod имеет следующий синтаксис: chmod [-fhv] [-R [-H | -L | -P]] права_доступа файл ...

Права доступа к файлу могут изменять только владелец файла и суперпользователь. Параметр права_доступа задается в числовой или в символьной форме.

Права доступа в числовой форме задаются в виде восьмеричного числа  – битовой маски, являющегося суммой одного или нескольких следующих значений:

4000  – установка бита SUID
2000  – установка бита SUID
1000  – установка sticky-бита
0400  – право на чтение для владельца
0200  – право на запись для владельца
0100  – право на выполнение для владельца
0040  – право на чтение для группы владельца
0020  – право на запись для группы владельца
0010  – право на выполнение для группы владельца
0004  – право на чтение для остальных пользователей
0002  – право на запись для остальных пользователей
0001  – право на выполнение для остальных пользователей

Права доступа в символьном виде задаются с помощью следующей грамматики:

права_доступа ::=выражение [, выражение ...]
выражение ::=[субъект ...] [действие ...] действие
действие ::=операция [права ...]
субъект ::=a | u | g | o
операция ::=+ | - | =
права ::=r | s | t | w | x | X | u | g | o

Пример использования. Для того, чтобы для файла test.txt сбросить все права для группы владельца и остальных пользователей, а для владельца установить права на чтение и запись, можно использовать следующие команды (они эквивалентны): chmod u=rw,go= test.txtchmod a=,u=rw test.txtchmod 600 test.txt. Результат:

[user@localhost ~]$ ls -l test.txt
-rw-r--r--  1 pp  ppgroup  0  7 дек 00:34 test.txt
[user@localhost ~]$ chmod a=,u=rw test.txt
[user@localhost ~]$ ls -l test.txt
-rw-------  1 pp  ppgroup  0  7 дек 00:34 test.txt

Для добавления группе владельца права на запись и отмены для остальных пользователей права на чтение можно использовать следующую команду: chmod g+w,o-r test.txt. Результат:

[user@localhost ~]$ ls -l test.txt
-rw-r--r--  1 pp  ppgroup  0  7 дек 00:34 test.txt
[user@localhost ~]$ chmod g+w,o-r test.txt
[user@localhost ~]$ ls -l test.txt
-rw-rw----  1 pp  ppgroup  0  7 дек 00:34 test.txt

chown

Команда используется для смены владельца/группы файлов.

Команда имеет следующий синтаксис: chown [-fhv] [-R [-H | -L | -P]] владелец[:группа] файл ... chown [-fhv] [-R [-H | -L | -P]] :группа файл ...

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

Для изменения группы-владельца файла test.txt на guest необходимо ввести следующую команду: chown :guest test.txt. Результат:

[root@localhost ~]# ls -l test.txt
-rw-------  1 pp  ppgroup  0  7 дек 00:34 test.txt
[root@localhost ~]# chown :guest test.txt
[root@localhost ~]# ls -l test.txt
-rw-------  1 pp  guest  0  7 дек 00:34 test.txt

Команды по управлению пользователями

su

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

Команда имеет следующий синтаксис: su [-] [-flms] [-c класс] [пользователь [параметры]]

Команда su позволяет пользователю временно стать другим пользователем. Если не указан параметр пользователь, то используется значение по умолчанию - суперпользователь. Если указанному пользователю назначен пароль, то потребуется его ввести, прежде чем стать другим пользователем.

Для того, чтобы стать суперпользователем, нужно ввести команду su без параметров:

[user@localhost ~]$ su
Password:
[root@localhost ~]#

Для того, чтобы получить окружение суперпользователя, необходимо запустить su -.

sudo

Программа sudo является логическим развитием программы su и позволяет как переходить в сеанс суперпользователя, так и запускать отдельные программы от имени суперпользователя.

Команда sudo имеет синтаксис: sudo [-HSb] [-u пользователь] {-s | команда}. Можно использовать следующие ключи:

-H
переменная окружения HOME изменяется в соответствии с выбранным пользователем;
-b
команда исполняется на заднем плане;
-s
вместо команды запускается командная оболочка данного пользователя.

Главным достоинством команды sudo является возможность гибкого конфигурирования – на какие программы каким пользователям разрешено повышение привилегий. Конфигурация хранится в файле /etc/sudoers. Рассмотрение его формата выходит за рамки этих лекций, для получения подробной информации о нём можно обратиться к страницам руководства (sudoers(5)).

passwd

Команда используется для изменения пароля.

Команда имеет следующий синтаксис: passwd [-l] [пользователь]

Обычные пользователи могут изменять только собственные пароли. Суперпользователь может менять пароли любых пользователей. При вызове команды сначала необходимо ввести старый пароль, если он был установлен. Затем предлагается дважды ввести новый пароль. Если указанные операции были выполнены без ошибок, то пароль пользователя будет изменен.

useradd

Команда предназначена для добавления нового регистрационного имени пользователя в системе.

Команда имеет следующий синтаксис: useradd [-u идентификатор [-o] [-i]] [-g группа] [-G группа[[,группа] . . .]] [-d каталог] [-s shell] [-c комментарий] [-m [-k skel_dir]] [-f inactive] [-e expire] [-p passgen] [-a событие[, . . .]] регистрационное_имя

userdel

Команда предназначена для удаления регистрационных имен пользователей из системы.

Команда имеет следующий синтаксис: userdel [-r] [-n месяцев] регистрационное_имя

Команда userdel удаляет определение регистрационного имени пользователя из системы. Она удаляет определение указанного регистрационного имени и выполняет соответствующие изменения в регистрационных файлах и файловой системе. Команда также запоминает идентификационный номер удаляемого пользователя (UID) в файле /etc/security/ia/ageduid, так что этот идентификатор не будет повторно использован на протяжении определенного периода времени. Эта практика неиспользования идентификатора пользователя называется устареванием идентификатора (UID aging). Для удаления домашнего каталога пользователя необходимо выполнить команду с ключом -r. Параметр месяцев задает, сколько месяцев будет запрещено использовать удаляемый идентификатор.

usermod

Команда предназначена для изменения регистрационной информации о пользователе в системе.

Команда имеет следующий синтаксис: usermod [-u идентификатор [-U] [-o]] [-g группа] [-G группа[[,группа] . . .]] [-d каталог [-m]] [-s shell] [-c комментарий] [-l новое_рег_имя] [-f inactive] [-e expire] [-p passgen] [-a [оператор]событие[, . . .]] регистрационное_имя

groupadd

Команда используется для создания новой группы в системе.

Команда имеет следующий синтаксис:

groupadd [-g идентификатор [-o]] группа

Новую группу может добавлять только суперпользователь. Команда groupadd создает новое определение группы в системе путем добавления соответствующей записи в файл /etc/group.

groupdel

Команда используется для удаления определения группы из системы.

Команда имеет следующий синтаксис: groupdel группа

Команда groupdel удаляет определение группы из системы путем удаления записи о соответствующей группе из файла /etc/group. Она, однако, не удаляет идентификатор группы (GID) из файла паролей; удаленный GID действует для всех файлов и каталогов, которые его имели.

groupmod

Команда предназначена для изменения определения группы в системе.

Команда имеет следующий синтаксис: groupmod [-g идентификатор [-o]] [-n имя] группа

Команда groupmod изменяет определение указанной группы путем изменения соответствующей записи в файле /etc/group. Новое имя группы задается параметром группа, новый идентификатор группы задается параметром идентификатор. Ключ -o позволяет задать дублирующийся идентификатор группы. Если перед группой стоит символ +, (например, +student), определение группы администрируется сетевой информационной службой (Network Information Service - NIS). В этом случае, значение идентификатора группы берется из базы данных NIS. Для таких групп использование ключей -g или -o вызовет выдачу сообщения о синтаксической ошибке.

Резюме

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

Ключевые термины: «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы»

Дополнительные материалы

  1. Скотт Манн, Эленн Митчелл, Митчелл Крелл Безопасность Linux. – М.: Вильямс, 2003. – 624 с.: ил.
  2. Курячий Г.В. Операционная система UNIX. – М.:Интуит.Ру, 2004. – 292 с.: ил.