Опубликован: 13.05.2011 | Уровень: для всех | Доступ: свободно
Лекция 3:

Учетные записи в Linux

< Лекция 2 || Лекция 3 || Лекция 4 >
Аннотация: Понятие учетной записи и аутентификации. Файлы /etc/passwd и /etc/group, /etc/shadow и /etc/gshadow. Учетная запись root. Пароли в Linux. Команды login, su, newgrp, passwd, gpasswd, chage.

Ход занятия

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

Учетная запись пользователя – это необходимая для системы информация о пользователе, хранящаяся в специальных файлах. Информация используется Linux для аутентификации пользователя и назначения ему прав доступа.

Аутентификация – системная процедура, позволяющая Linux определить, какой именно пользователь осуществляет вход.

Вся информация о пользователе обычно хранится в файлах /etc/passwd и /etc/group.

/etc/passwd – этот файл содержит информацию о пользователях. Запись для каждого пользователя занимает одну строку:

имя пользователя – имя, используемое пользователем на все приглашения типа login при аутентификации в системе.

зашифрованный пароль – обычно хешированный по необратимому алгоритму MD5 пароль пользователя или символ '!', в случаях, когда интерактивный вход пользователя в систему запрещен.

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

GID – числовой идентификатор группы. Имена групп расположены в файле /etc/group. Система использует его для распределения прав файлам и процессам.

Настоящее имя пользователя – используется в административных целях, а также командами типа finger (получение информации о пользователе через сеть).

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

Оболочка командная оболочка, которую использует пользователь при сеансе. Для нормальной работы она должна быть указана в файле регистрации оболочек /etc/shells .

/etc/group – этот файл содержит информацию о группах, к которым принадлежат пользователи:

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

Шифрованный пароль – используется при смене группы командой newgrp. Пароль для групп может отсутствовать.

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

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

На сегодняшний день хранение паролей в файлах passwd и group считается ненадежным. В новых версиях Linux применяются так называемые теневые файлы паролей – shadow и gshаdow. Права на них назначены таким образом, что даже чтение этих файлов без прав суперпользователя невозможно. Нужно учесть, что нормальное функционирование системы при использовании теневых файлов подразумевает одновременно и наличие файлов passwd и group. При использовании теневых паролей в /etc/passwd и /etc/group вместо самого пароля устанавливается символ 'x', что и является указанием на хранение пароля в /etc/shadow или /etc/gshadow.

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

  • а - имя пользователя ;
  • б - шифрованный пароль – применяются алгоритмы хеширования, как правило MD5 или символ '!', в случаях, когда интерактивный вход пользователя в систему запрещен;
  • в - число дней с последнего изменения пароля, начиная с 1 января 1970 года;
  • г - число дней, перед тем как пароль может быть изменен;
  • д - число дней, после которых пароль должен быть изменен;
  • е - число дней, за сколько пользователя начнут предупреждать, что пароль устаревает;
  • ж - число дней, после устаревания пароля для блокировки учетной записи;
  • з -дней, отсчитывая с 1 января 1970 года, когда учетная запись будет заблокирована;
  • и - зарезервированное поле;

Файл gshadow так же накладывает дополнительную функциональность, вкупе с защищенным хранением паролей групп. Он имеет следующую структуру:

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

Шифрованный пароль – используется при смене группы командой newgrp . Пароль для групп может отсутствовать.

Администратор группы пользователь, имеющий право изменять пароль с помощью gpasswd.

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

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

3. В Linux используется развитая система распределения прав пользователям. Но для точного опознания пользователя одного имени недостаточно с точки зрения безопасности. Именно поэтому используется и пароль – произвольный набор символов произвольной длины, обычно ограниченной лишь используемыми методами шифрования.

Сегодня в большинстве версий Linux пароли шифруются по алгоритмам 3DES и MD5 (устарело, теперь SHA512). Когда алгоритм 3DES является обратимым, то есть такой пароль можно расшифровать, MD5 – это необратимое преобразование. Пароли, зашифрованные по алгоритму 3DES не применяются при использовании теневых файлов для хранения паролей.

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

Учитывая ежедневно увеличивающиеся требования к безопасности, в Linux есть возможность использовать скрытые пароли. Файлы /etc/passwd и /etc/group доступны для чтения всем пользователям, что является довольно большой брешью в безопасности системы. Именно поэтому в современных версиях Linux предпочтительнее использовать скрытые пароли. Такие пароли располагаются в файлах /etc/shadow и /etc/gshadow, для паролей пользователей и групп соответственно.

4. Команда login запускает сеанс интерактивной работы в системе. Она проверяет правильность ввода имени и пароля пользователя, меняет каталог на домашний, выстраивает окружение и запускает командный интерпретатор. Команду login как правило не запускают из командной строки — это обычно за пользователя делают менеджеры консоли — например getty или mgetty.

Команда su (switch user) позволяет сменить идентификатор пользователя уже в процессе сеанса. Синтаксис ее прост: su username, где usernameимя пользователя, которое будет использоваться. После этого программа запросит пароль. При правильно введенном пароле, su запустит новый командный интерпретатор с правами пользователя, указанного su и присвоит сеансу его идентификаторы. Если имя пользователя опущено, то команда su использует имя root.

[student@ns student]$ su root
Password:
[root@ns student]#_

При использовании команды su пользователем root она, как правило, не запрашивает пароль.

Команда newgrp аналогична по своим возможностям su с той разницей, что происходит смена группы. Пользователь должен быть включен в группу, которая указывается в командной строке newgrp . При использовании команды newgrp пользователем root она никогда не запрашивает пароль. Синтаксис команды аналогичен синтаксису команды su: newgrp groupname, где groupname имя группы, на которую пользователь меняет текущую.

Команда passwd является инструментом для смены пароля в Linux. Для смены своего пароля достаточно набрать в командной строке passwd:

[student@ns student]$ passwd
Changing password for student
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully
[student@ns student]$_

Для смены пароля группы и управления группой используется команда gpasswd Для смены пароля достаточно набрать в командной строке gpasswd GROUPNAME . Сменить пароль вам удастся только если Вы являетесь администратором группы. Если пароль не пустой,то для членов группы вызов newgrp пароля не требует, а не члены группы должны ввести пароль. Администратор группы может добавлять и удалять пользователей с помощью параметров -a и -d соответственно. Администраторы могут использовать параметр -r для удаления пароля группы. Если пароль не задан, то только члены группы с помощью команды newgrp могут войти в группу. Указав параметр -R можно запретить доступ в группу по паролю с помощью команды newgrp (однако на членов группы это не распространяется). Системный администратор ( root ) может использовать параметр -A, чтобы назначить группе администратора.

Команда chage управляет информацией об устаревании пароля и учетной записи. Обычный пользователь (не root ) может использовать команду только для просмотра своих параметров устаревания пароля:

gserg@ADM:/$ chage -l gserg
Last password change                                    : Май 03, 2007
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

Суперпользователь же может использовать также иные параметры, такие как:

-d дата (в формате системной даты, например ДД.ММ.ГГГГ) – устанавливает дату последней смены пароля пользователем.

-E дата – установить дату устаревания пароля учетной записи пользователя

-I N – установить количество дней неактивности N с момента устаревания пароля перед тем как учетная запись будет заблокирована

-m N – задает минимальное количество дней (N) между сменами пароля

-M N – задает максимальное количество дней (N) между сменами пароля

-W N – задает количество дней, за которые будет выдаваться предупреждение об устаревании пароля.

< Лекция 2 || Лекция 3 || Лекция 4 >
Ярослав Горлов
Ярослав Горлов

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

Max Akt
Max Akt

Начиная с восьмого урока резко возросла сложность. Почему? Если первые семь уроком у нас было ознакомление с базовыми функциями, а с восьмого начались сценарии, переменные, функции. Как так? Неужели человек, который только начал изучать Linux, будет в курсе того, о чем говорится уже на восьмом уроке?
 

Андрей Садовщиков
Андрей Садовщиков
Россия