Смена пароля в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

В этом лабораторном занятии (LabEx) вы научитесь использовать команду passwd для изменения паролей пользователей и реализации базовых политик паролей. Эти основные навыки обязательны для всех, кто работает с системами Linux, особенно для тех, кто занимается управлением учетными записями пользователей и обеспечением безопасности системы.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/UserandGroupManagementGroup -.-> linux/useradd("User Adding") linux/UserandGroupManagementGroup -.-> linux/passwd("Password Changing") linux/UserandGroupManagementGroup -.-> linux/id("User/Group ID Displaying") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/chmod -.-> lab-271347{{"Смена пароля в Linux"}} linux/cd -.-> lab-271347{{"Смена пароля в Linux"}} linux/grep -.-> lab-271347{{"Смена пароля в Linux"}} linux/useradd -.-> lab-271347{{"Смена пароля в Linux"}} linux/passwd -.-> lab-271347{{"Смена пароля в Linux"}} linux/id -.-> lab-271347{{"Смена пароля в Linux"}} linux/nano -.-> lab-271347{{"Смена пароля в Linux"}} end

Понимание команды passwd

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

Создание нового пользователя

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

cd ~/project

Теперь используйте команду useradd для создания нового пользователя с именем cyberuser:

sudo useradd cyberuser

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

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

id cyberuser

Вы должны увидеть вывод, похожий на следующий:

uid=1001(cyberuser) gid=1001(cyberuser) groups=1001(cyberuser)

Установка пароля для нового пользователя

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

sudo passwd cyberuser

После выполнения этой команды вас попросят ввести новый пароль дважды для подтверждения:

New password:
Retype new password:
passwd: password updated successfully

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

Команда passwd обновляет пароль для указанной учетной записи пользователя. При выполнении с привилегиями sudo вы можете изменить пароль для любого пользователя на системе.

Просмотр информации о пароле

Чтобы просмотреть информацию о пароле пользователя, включая дату последнего изменения, вы можете использовать команду chage -l, за которой следует имя пользователя:

sudo chage -l cyberuser

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

Last password change                                    : Jul 15, 2023
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

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

Понимание файлов паролей в Linux

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

Исследование файлов, связанных с паролями

Перейдите в каталог проекта:

cd ~/project

Рассмотрим ключевые файлы, в которых хранится информация о паролях и учетных записях пользователей:

  1. Сначала посмотрите на файл /etc/passwd, который содержит основную информацию об учетных записях пользователей:
grep cyberuser /etc/passwd

Вы должны увидеть вывод, похожий на следующий:

cyberuser:x:1001:1001::/home/cyberuser:/bin/sh

Эта строка содержит несколько полей, разделенных двоеточиями:

  • Имя пользователя: cyberuser
  • Заполнитель для пароля: x (фактический пароль хранится в /etc/shadow)
  • Идентификатор пользователя (UID): 1001
  • Идентификатор группы (GID): 1001
  • Поле с информацией о пользователе: (пустое в данном случае)
  • Домашний каталог: /home/cyberuser
  • Шелл по умолчанию: /bin/sh
  1. Теперь рассмотрим файл с зашифрованными паролями /etc/shadow:
sudo grep cyberuser /etc/shadow

Вывод покажет зашифрованный пароль и связанную информацию:

cyberuser:$6$xxxxxxxxxxxxxxxxxxx:19189:0:99999:7:::

Поля в этой строке включают:

  • Имя пользователя
  • Зашифрованный пароль
  • Количество дней с 1 января 1970 года, когда пароль был последний раз изменен
  • Количество дней до того, как можно будет изменить пароль
  • Количество дней, после которых пароль должен быть изменен
  • Количество дней до истечения срока действия пароля, когда пользователю будет выдано предупреждение
  • Количество дней после истечения срока действия пароля до блокировки учетной записи
  • Количество дней с 1 января 1970 года, когда учетная запись была заблокирована
  • Резервируемое поле

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

Применение политик паролей

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

Установка срока действия пароля

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

cd ~/project

Установим максимальный срок действия пароля для учетной записи cyberuser равным 90 дням:

sudo chage -M 90 cyberuser

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

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

sudo chage -m 7 cyberuser

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

Проверьте внесенные изменения:

sudo chage -l cyberuser

Вы должны увидеть обновленную информацию о политике паролей:

Last password change                                    : Jul 15, 2023
Password expires                                        : Oct 13, 2023
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 7
Maximum number of days between password change          : 90
Number of days of warning before password expires       : 7

Создание скрипта политики паролей

Теперь создадим скрипт, который реализует более продвинутые политики паролей. Создайте новый файл с именем cyberpolicy.sh:

nano ~/project/cyberpolicy.sh

Добавьте в файл следующее содержимое:

#!/bin/bash

## Enforce password complexity
echo "password requisite pam_pwquality.so retry=3 minlen=8 difok=3" | sudo tee -a /etc/pam.d/common-password

## Set password expiration policy for all new users
echo "PASS_MAX_DAYS   90" | sudo tee -a /etc/login.defs
echo "PASS_MIN_DAYS   7" | sudo tee -a /etc/login.defs
echo "PASS_WARN_AGE   7" | sudo tee -a /etc/login.defs

echo "Password policy has been updated successfully."

Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите из nano с помощью Ctrl+X.

Сделайте скрипт исполняемым:

chmod +x ~/project/cyberpolicy.sh

Этот скрипт устанавливает следующие политики паролей:

  • Сложность пароля: Минимум 8 символов, по крайней мере 3 разных символа по сравнению с предыдущим паролем, разрешено 3 попытки ввода
  • Срок действия пароля: Максимальный срок действия пароля - 90 дней
  • Ограничение на смену пароля: Минимальный срок действия пароля - 7 дней
  • Предупреждение о пароле: 7 дней до истечения срока действия пароля

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

Резюме

В этом практическом занятии вы научились основным навыкам управления паролями в системах Linux. Вы потренировались в следующих задачах:

  1. Создании новой учетной записи пользователя с помощью команды useradd
  2. Установке и изменении паролей с помощью команды passwd
  3. Просмотре информации о паролях в системных файлах, таких как /etc/passwd и /etc/shadow
  4. Установке политик срока действия паролей с помощью команды chage
  5. Создании скрипта для применения политик сложности и срока действия паролей

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

По мере продолжения своего обучения рекомендуется изучить более продвинутые темы, такие как настройка PAM (Pluggable Authentication Modules), реализация многофакторной аутентификации и автоматизация управления учетными записями пользователей в корпоративных средах.