Лабораторная работа №4
По курсу «Операционные системы».
Управление пользователями в ОС Unix/Linux.
Даны сведения об управлении пользователями системы и использовании текстового редактора vi для редактирования файлов с информацией о пользователях.
Рассмотренные команды: vi, vipw, useradd, userdel, passwd, who, pwck
Система контроля прав доступа является неотъемлемой частью ОС UNIX. Помимо обеспечения возможности многопользовательской работы, эта система используется как один из возможных путей повышения безопасности серверов в сети. Запуск серверных программ осуществляется администратором от имени пользователя, имеющего права доступа только к каталогам, необходимым для работы данной программы. В случае сбоя в работе программы (как правило искусственно инициированного злоумышленником) она не сможет получить доступ к другим файлам и каталогам, благодаря чему злоумышленник не сможет получить контроль над системой.
Файлы /etc/passwd, /etc/group, etc/shadow
В файле /etc/passwd содержится список пользователей системы. В процессе регистрации пользователя система обращается к данному файлу в поисках идентификатора пользователя, а также с целью проверки пароля. Каждая строка файла описывает одного пользователя и содержит семь полей, разделенных двоеточиями:
- регистрационное имя (login)
- зашифрованный пароль (если в системе используется файл скрытых паролей – см. ниже, то это поле остается пустым)
- идентификатор пользователя
- идентификатор группы
- сведения о пользователе (например полное имя, используется для сведения администратора)
- домашний каталог пользователя
- командный интерпретатор
Примеры записей файла /etc/passwd (в системе используется файл скрытых паролей):
|
Root::0:0:administrator:/:/bin/bash
vasy::100:20:Vasiliy Pupkin,tel.30-30-30:/home/vasy:/bin/bash
Регистрационное имя должно быть уникальным, то есть в одной системе не может быть нескольких пользователей с одним и тем же именем. В различных версиях UNIX имеются различные ограничения на число и допустимый набор символов в имени, для обеспечения совместимости с любой системой желательно задавать имя не длиннее восьми символов, содержащее только цифры и строчные буквы латинского алфавита.
В старых версиях системы UNIX в поле зашифрованного пароля хранился пароль, зашифрованный с использованием алгоритма необратимого шифрования DES (хэш-код). При регистрации пользователя в системе введенный пароль зашифровывается и сравнивается с хранящимся хэш-кодом, в случае совпадения доступ к системе разрешается.
Алгоритма для обратного преобразования хэш-кода в исходный пароль не существует, но злоумышленник, получивший доступ к хэш-коду, может узнать пароль путем последовательного перебора (всех возможных сочетаний символов, или по словарю) и сравнения результата DES-кодирования с хэш-кодом. Поэтому в современных версиях UNIX пароли хранятся в специальном файле /etc/shadow, для защиты которого принимаются специальные меры.
Идентификатор пользователя (UID) – целое число. Для обеспечения совместимости со старыми версиями ОС рекомендуется, чтобы значение UID не превышало 32767, в современных системах оно может быть больше. Пользователь с идентификатором 0 является администратором системы и имеет особые полномочия (традиционно он имеет регистрационное имя root). Идентификаторы 1-99 как правило резервируются для псевдопользователей (от имени этих пользователей запускаются некоторые системные программы) и не назначаются реальным пользователям.
|
Поле идентификатора группы использовалось для определения группы, к которой принадлежит пользователь, в старых версиях UNIX. В современных версиях пользователь может одновременно быть членом до 16-ти групп, сведения о членстве указываются в файле /etc/group. Рекомендуется указывать в этом поле идентификатор группы, не являющейся владельцем ни одного файла в системе.
Домашний каталог это каталог, предназначенный для хранения файлов пользователя. После входа пользователя в систему этот каталог становится активным. Для обозначения домашнего каталога используется символ ~, то есть запись ~/dir1/file1 указывает на файл file1, находящийся в каталоге dir1 в домашнем каталоге пользователя.
Командный интерпретатор (оболочка) это программа, запускаемая после входа пользователя в систему. Для пользователей, зарегистрированных в системе (например для того чтобы получать электронную почту), но не имеющих права входа и работы с оболочкой вместо командного интерпретатора указывается специальная программа, автоматически завершающая сеанс работы сразу после попытки регистрации (в Red Hat Linux - /sbin/nologin)
Файл /etc/group содержит имена групп пользователей, идентификаторы групп и списки членов каждой группы. Каждая строка представляет одну группу и содержит четыре поля:
- имя группы
- зашифрованный пароль (не используется)
|
- идентификатор группы
- список пользователей-членов через запятую (пробелы не допускаются)
Например:
users:*:500:root,vasy,masha,boy
Файл /etc/shadow используется в ОС Linux и Solaris Unix для хранения зашифрованных паролей. Этот файл доступен только суперпользователю. Каждая строка этого файла соответствует одному пользователю и состоит из девяти полей:
- регистрационное имя
- зашифрованный пароль
- дата последнего изменения пароля
- минимальное число дней между изменениями пароля
- максимальное число дней между изменениями пароля
- число дней, которое должно остаться до истечения срока действия пароля, чтобы было выдано предупреждение
- период отсутствия активности, после которого учетная запись будет отменена
- срок действия учетной записи
- зарезервировано
Все поля, кроме первых двух, могут быть пустыми, если указанные ограничения не задействованы.
Чтобы запретить вход пользователя в систему, в поле зашифрованного пароля можно поставить символ * (ни один пароль не имеет такой хэш-код).
Пример записи в файле /etc/shadow:
root:$1$MY76JUuX$GJ5vi.T5D8tcMBnG3K/M9/::::::::
Редактор vi
Редактор vi это встроенный в Linux редактор текстовых файлов, специально предназначенный для работы с терминалом. Любые операции с текстом, включая выделение, копирование и удаление блоков можно проводить используя только алфавитно-цифровые клавиши и Enter. Ниже рассмотрено применение vi для выполнения элементарных операций с текстом.
Для того чтобы начать редактирование файла filename с пмощью vi следует использовать команду
Vi filename
Команда
Vipw
запускает создает копию файла /etc/passwd и запускает редактор vi для редактирования копии. После редактирования исходный файл заменяется отредактированной копией и пользователю предлагается отредактировать файл /etc/shadow (работа также ведется с копией)
После запуска редактор vi находится в режиме команд. В этом режиме пользователь может:
- перемещать курсор по файлу (нажатием на клавиши со стрелками и клавиши h – влево, j – вниз, k – вверх, l – вправо);
- удалить текущий символ нажатием на клавишу delete или x;
- перейти в режим вставки текста нажатием на клавишу i;
- подать команду, нажав клавишу «:» и затем набрав имя команды.
Для выхода из режима вставки текста в режим команд следует нажать клавишу [Esc].
Некоторые команды vi:
:help вывод справочной информации
:q! выход из редактора без сохранения сделанных изменений
:wq выход из редактора с сохранением сделанных изменений