Как сменить пароль в Linux

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


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

ОСНОВЫ​

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

Список пользователей в Linux хранится в файле /etc/passwd, вы можете без труда открыть его и посмотреть, пароли же выделены в отдельный файл - /etc/shadow. Этот файл можно открыть только с правами суперпользователя, и, более того, пароли здесь хранятся в зашифрованном виде, поэтому узнать пароль Linux не получиться, а поменять вручную будет сложно.

В большинстве случаев смена пароля выполняется с помощью утилиты passwd. Это очень мощная утилита, она позволяет не только менять пароль, но и управлять сроком его жизни. У неё такой синтаксис:

$ passwd опции пользователь

Рассмотрим опции, чтобы лучше ориентироваться в использовании утилиты:

  • -d - удалить пароль пользователя, после этого он не сможет войти
  • -e - сделать пароль устаревшим
  • -i - через сколько дней после того, как пароль устарел, отключить аккаунт, если пользователь не сменил пароль
  • -l - запретить пользователю входить в систему
  • -n - минимальное количество дней между сменами пароля
  • -S - отобразить информацию об аккаунте
  • -u - отменяет действие параметра -l
  • -x - максимальное количество дней, пока пароль можно использовать.
  • -w - количество дней, после которых нужно предупреждать пользователя о том, что надо сменить пароль.
Возможно, сейчас всё выглядит очень непонятно, но на примерах станет проще. Мы рассмотрим, зачем и в каких случаях нужно использовать все эти опции, чтобы сменить пароль в Linux. Переходим к практике.

Если вы забыли пароль и вам его надо не просто сменить, а сбросить, вам будут полезными эти две статьи:

КАК СМЕНИТЬ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ​

Вы можете сменить свой пароль, когда захотите. Для этого вам не нужно особых прав суперпользователя, только знать свой текущий пароль. Просто откройте терминал и выполните утилиту passwd без параметров:
Код:
passwd

1613614027601.png
Дальше необходимо ввести новый пароль - и готово, теперь он измеён. Он кодируетсятся с помощью необратимого шифрования и сохраняется в файле /etc/shadow Но заметьте, что вы не можете использовать здесь любой пароль. Система Linux заботится о том, чтобы пользователи выбирали достаточно сложные пароли. Если он будет очень коротким или будет содержать только цифры, вы не сможете его установить.

Общие требования для пароля такие: должен содержать от 6 до 8 символов, причём один или несколько из них должны относиться как минимум к двум из таких множеств:

  • Буквы нижнего регистра
  • Буквы верхнего регистра
  • Цифры от нуля до девяти
  • Знаки препинания и знак _
Теперь рассмотрим, как изменить пароль Linux для другого пользователя.

КАК СМЕНИТЬ ПАРОЛЬ ДРУГОГО ПОЛЬЗОВАТЕЛЯ​

Со своим паролем всё понятно, но если вы захотите поменять код для другого пользователя, то придётся вопользоваться правами суперпользователя. А во всём остальном процесс тот же:
Код:
 sudo passwd user

Здесь user - это пользователь, для которого нужна смена пароля Linux. Требования для пароля такие же: вы не сможете установить слишком простой пароль.

Вы можете удалить пароль Linux для пользователя, тогда он не сможет войти в систему:
Код:
 sudo passwd -d user

КАК ПОМЕНЯТЬ ПАРОЛЬ ГРУППЫ​

Наверное вы видели в своей системе файл /etc/gshadow. Этот файл эквивалентен /etc/shadow, только содержат пароли для групп. Вы не можете войти от имени группы, но зато, зная её пароль, можете получить доступ к предоставляемым ею функциям в отдельной командной оболочке с помощью команды newgrp.

Для установки пароля на группу используется утилита очень похожая на passwd - gpasswd. Естественно, нам нужны права суперпользователя. Например:
Код:
 sudo gpasswd disk

1613614181193.png
Теперь попробуем получить полномочия группы:

1613614209491.png
После ввода пароля мы временно оказываемся в этой группе и можем работать с теми файлами, к которым разрешен доступ этой группе. Чтобы удалить пароль Linux из группы, используется опция -r:
Код:
 sudo gpasswd -r disk

КАК ЗАСТАВИТЬ ПОЛЬЗОВАТЕЛЯ ПОМЕНЯТЬ ПАРОЛЬ​

Безопасность сервера - это одна из самых важных вещей. Часто причиной проблем с безопасностью становятся сами пользователи, которые недостаточно часто меняют пароли или делают их слишком простыми. Если вы администратор, у вас есть возможность заставить пользователей выполнять смену пароля время от времени, а также автоматически отсылать им предупреждения о том, что пора сменить пароль пользователя Linux.

Всё это позволяет сделать утилита passwd. Сначала давайте рассмотрим, как посмотреть информацию о пароле в passwd. Для этого используется опция -S:
Код:
 passwd -S user

1613614285035.png
  • Первое поле - имя пользователя
  • Второе поле показывает одно из значений: P - пароль установлен, L - пользователь заблокирован, NP - пароля нет.
  • 07/21/2016 - дата последнего изменения пароля.
  • 0 - минимальное время до смены пароля
  • 99999 - максимальное время действия пароля
  • 7 - за сколько дней нужно предупреждать об истечении срока действия пароля
  • -1 - через сколько дней пароль нужно деактивировать.
Например, через тридцать дней после смены, пароль пользователя станет устаревшим:
Код:
 sudo passwd -x 30 test

1613614343135.png
За три дня до того, как пароль устареет, предупредим пользователя, что его нужно сменить:
Код:
 sudo passwd -w 3 test

Если он этого не сделает в течении пяти дней, аккаунт нужно отключить:
Код:
 sudo passwd -i 3 test

Пароль можно менять не чаще, чем раз в 10 дней:
Код:
 sudo passwd -n 10 test

Смотрим теперь, что у нас получилось:
Код:
 sudo passwd -S test

1613614474026.png
Всё правильно.

КАК ПОМЕНЯТЬ ПАРОЛЬ ROOT​

Изменить пароль Linux для root очень просто, точно так же, как и для любого другого пользователя. Только нужно иметь права суперпользователя. Вот так это будет выглядеть:
Код:
 sudo passwd root

1613614520259.png
Всё работает. Таким же способом можно задать пароль root в Ubuntu.

КАК ВРУЧНУЮ ПОМЕНЯТЬ ПАРОЛЬ​

Операционная система Linux не была бы Linux, если бы мы не имели возможность настроить пароль вручную безо всяких утилит. Как я уже говорил, пароли хранятся в файле /etc/shadow. И хранятся они там в зашифрованном виде. Расшифровать пароль невозможно.

Когда система сохраняет пароль, она выполняет шифрование по определённому алгоритму и сохраняет уже зашифрованный результат, а когда пользователю нужно войти в систему, она просто берёт его пароль, опять же шифрует и сверяет с тем, что хранится в /etc/shadow. Если совпадает - пользователь авторизован.

Даже таким способом сменить пароль пользователя Linux не так уж сложно. Итак, сначала нам нужно получить зашифрованный пароль. Это можно сделать несколькими способами, например с помощью openssl:
Код:
 openssl passwd -1 -salt xyz yourpass

Замените xyz на любую случайную комбинацию символов, чем больше, тем лучше; yourpass - это ваш новый пароль.

Скопируйте полученный результат в буфер обмена, затем откройте файл /etc/shadow и найдите там нужного пользователя. Я хочу сменить пароль Linux для test:
Код:
 sudo vi /etc/shadow

1613614598720.png
Синтаксис этого файла такой:

имя_пользователя:пароль:::::

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

Теперь замените пароль на полученный выше и сохраненный в буфер обмена. Сохраните файл и можете пробовать войти под новым паролем:
Код:
 su test

1613614665778.png
Всё работает. Как я уже говорил, есть ещё несколько алгоритмов шифрования, с помощью которых вы можете получить пароль, вот они:
Код:
makepasswd --clearfrom=- --crypt-md5 <<< YourPass
Код:
 mkpasswd -m sha-512 -S salt -s <<< YourPass
Код:
 perl -e 'print crypt("YourPass", "salt"),"\n"'
Код:
 openssl passwd -crypt -salt XRYourPass

Во всех этих примерах salt - это случайная строка для увеличения надёжности шифрования, а YourPass - ваш пароль. Что делать с полученным данными вы уже знаете.

ВЫВОДЫ​

Из этой статьи вы узнали, как сменить пароль Linux. Я рассмотрел все возможные способы и даже не очень стандартные. Если у вас остались вопросы, пишите комментарии!
 
Последнее редактирование:
Сверху