Перейти к содержимому

Как изменить пароль рута linux

  • автор:

Как сменить пароль в 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. Переходим к практике.

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

  • Как сбросить пароль в Linux;
  • Как сбросить пароль в Ubuntu.

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

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

passwd

Дальше необходимо ввести новый пароль — и готово, теперь он измеён. Он кодируетсятся с помощью необратимого шифрования и сохраняется в файле /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

passwd1

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

passwd2

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

sudo gpasswd -r disk

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

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

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

passwd3

  • Первое поле — имя пользователя
  • Второе поле показывает одно из значений: P — пароль установлен, L — пользователь заблокирован, NP — пароля нет.
  • 07/21/2016 — дата последнего изменения пароля.
  • 0 — минимальное время до смены пароля
  • 99999 — максимальное время действия пароля
  • 7 — за сколько дней нужно предупреждать об истечении срока действия пароля
  • -1 — через сколько дней пароль нужно деактивировать.

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

sudo passwd -x 30 test

passwd4

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

sudo passwd -w 3 test

Если он этого не сделает в течении пяти дней, аккаунт нужно отключить:

sudo passwd -i 3 test

Пароль можно менять не чаще, чем раз в 10 дней:

sudo passwd -n 10 test

Смотрим теперь, что у нас получилось:

sudo passwd -S test

passwd5

Как поменять пароль root

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

sudo passwd root

passwd6

Всё работает. Таким же способом можно задать пароль 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

passwd8

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

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

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

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

passwd7

Всё работает. Как я уже говорил, есть ещё несколько алгоритмов шифрования, с помощью которых вы можете получить пароль, вот они:

makepasswd —clearfrom=- —crypt-md5 mkpasswd -m sha-512 -S salt -s perl -e ‘print crypt(«YourPass», «salt»),»\n»‘
openssl passwd -crypt -salt XRYourPass

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

Выводы

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

Изменить пароль рута

Не уверен что в правильной ветке пишу. Моя ситуация такая. Завел на амазоне сервер. Там уже накатана убунта. Когда захожу по ssh то логинюсь за пользователя ubuntu. За ubuntu могу через sudo перейти в root. sudo не запрашивает пароля. Хочу установть на рут пароль. Я так понимаю, что root здесь по умолчанию без пароля. Как это сделать? И безопасно ли иметь такие параметры в sudoers?

# User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL 

Aswed ★★★★★
20.01.17 18:30:54 MSK

karaien ★★
( 20.01.17 18:35:41 MSK )
Последнее исправление: karaien 20.01.17 18:35:55 MSK (всего исправлений: 1)

Нет Убунты под рукой. Должно быть что-то такое:
sudo passwd -l root

arro
( 20.01.17 18:48:37 MSK )
Ответ на: комментарий от karaien 20.01.17 18:35:41 MSK

Сделал. sudo su все равно переводит без запроса пароля.

Aswed ★★★★★
( 20.01.17 19:12:08 MSK ) автор топика
Ответ на: комментарий от Aswed 20.01.17 19:12:08 MSK

sudo и не будет запрашивать пароль рута, она запрашивает пароль юзера который её вызывает. Пароль рута запрашивает su.

Это установило пароль пользователю root, но это не безопасно: в убунте у рута вроде бы отнят и пароль и шелл, чтобы под него нельзя было залогиниться.

Тебе нужно чтобы sudo всегда запрашивал пароль?

mandala ★★★★★
( 20.01.17 21:14:26 MSK )

И безопасно ли иметь такие параметры в sudoers?

Нет. Это фактически работа под рутом.

mandala ★★★★★
( 20.01.17 21:25:23 MSK )

$ sudo passwd root

deep-purple ★★★★★
( 20.01.17 21:33:28 MSK )
Ответ на: комментарий от mandala 20.01.17 21:14:26 MSK

sudo и не будет запрашивать пароль рута, она запрашивает пароль юзера который её вызывает.

Но если быть совсем честным, то sudo можно настроить что бы пароль рута спрашивал.

anc ★★★★★
( 21.01.17 02:49:06 MSK )
Ответ на: комментарий от mandala 20.01.17 21:14:26 MSK

в убунте у рута вроде бы отнят и пароль и шелл, чтобы под него нельзя было залогиниться.

4.2. Только пароль.

WereFox ★☆
( 21.01.17 03:50:40 MSK )
Ответ на: комментарий от mandala 20.01.17 21:14:26 MSK

Ааа. Это многое объясняет. Спасибо.

Aswed ★★★★★
( 21.01.17 22:15:25 MSK ) автор топика
Ответ на: комментарий от mandala 20.01.17 21:25:23 MSK

А как бы вы советовали настроить sudoers?

Aswed ★★★★★
( 21.01.17 22:15:52 MSK ) автор топика
Ответ на: комментарий от Aswed 21.01.17 22:15:52 MSK

sudoers оставь как есть, Дай выхлоп команды id

r0ck3r ★★★★★
( 21.01.17 22:43:36 MSK )
Ответ на: комментарий от mandala 20.01.17 21:25:23 MSK

не увидел там NOPASSWD: ALL, значит sudo должен запрашивать пароль

r0ck3r ★★★★★
( 21.01.17 22:44:40 MSK )
Ответ на: комментарий от r0ck3r 21.01.17 22:44:40 MSK

sudo некоторое время помнит пароль (из «коропки») и не запрашивает его в рамках той же сессии (процесса).

mandala ★★★★★
( 21.01.17 23:34:19 MSK )
Последнее исправление: mandala 21.01.17 23:39:04 MSK (всего исправлений: 1)

Ответ на: комментарий от anc 21.01.17 02:49:06 MSK

Но если быть совсем честным, то sudo можно настроить что бы пароль рута спрашивал.

Defaults rootpw

mandala ★★★★★
( 21.01.17 23:38:03 MSK )
Последнее исправление: mandala 21.01.17 23:38:46 MSK (всего исправлений: 2)

Ответ на: комментарий от Aswed 21.01.17 22:15:52 MSK

А как бы вы советовали настроить sudoers?

https://www.opennet.ru/cgi-bin/opennet/man.cgi?topic=sudoers&category=5 Видишь длину мана к конфигу? Простой ответ тут дать сложно, но по уже существующим настройкам: поменяй ALL на конкретные значения.

Какой примерно уровень параноидальности тебе в итоге нужен?

mandala ★★★★★
( 21.01.17 23:45:33 MSK )
Ответ на: комментарий от mandala 21.01.17 23:34:19 MSK

судя по тому, что ТС говорит:

он его не «помнит», а именно не спрашивает. Вангую, что ТС не состоит в группе admin и sudo, которым разрешено пускать все , но только с паролем, а в какой-нибудь левой группе, которой указано NOPASSWD: ALL и настройки которой подгружаются откуда-то из /etc/sudoers.d/*

Хотя это можно указать и для конкретного логина, так что, ТС, скидывай нам еще ls /etc/sudoers.d/

r0ck3r ★★★★★
( 22.01.17 01:00:13 MSK )
Последнее исправление: r0ck3r 22.01.17 01:02:51 MSK (всего исправлений: 1)

Ответ на: комментарий от r0ck3r 22.01.17 01:00:13 MSK

The official Ubuntu images for EC2 are configured so that no password is required for sudo from the “ubuntu” user. Yes, this sacrifices a bit of security from standard Ubuntu operation, but any published hardcoded password would be more unsecure, and randomly assigned passwords quickly become unmanageable when running many instances, in addition to preventing some types of remote automation described below.

Note that this policy does not allow logging in to the “ubuntu” user without a password. The password is disabled for login and not required for sudo. Login is done through the usual EC2 ssh keypair management as described above.

If you wish to increase security in this area, set the ubuntu user password and adjust the /etc/sudoers file.

и советуют выполнить такие команды:

sudo passwd ubuntu sudo perl -pi -e 's/^(ubuntu.*)NOPASSWD:(.*)/$1$2/' /etc/sudoers 

То есть установка пароля для пользователя ubuntu и снятие NOPASSWD для пользователя ubuntu

Как поменять забытый пароль root в Linux

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

Не стоит отчаиваться, так как это дело поправимое и есть простой рецепт — как изменить пароль рута в Linux.

Привожу пример на Debian

Первый шаг.
При загрузке системы нажимаем кнопку e

linux reset password

Шаг второй.
Находим строку, которая начинается на слово linux и меняем как показано на картинке rw и init=/bin/sh

linux reset pass debian

Дальше грузимся с изменениями, для этого нажимаем F10.

Шаг третий.
После загрузки у нас появляется работающая командная строка с правами root, вводим команду passwd и меняем пароль рута как обычно (указываем новый пароль и повторяем его).

Все, пароль изменен.

Шаг четвертый.
Перезагружаемся, например, комбинацией клавиш Ctrl+Alt+Del и входим в систему с нашим новым паролем.

P.S. конечно могут быть какие-нибудь нюансы, но как правило, этот способ работает.

Фразы: как сбросить забытый пароль Linux, Линукс войти без пароля

Как сбросить пароль в Linux

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

При восстановления пароля (рута или любого другого пользователя) встречаются две различные ситуации, требующие разного подхода.

Когда можно использовать GRUB
  • В окне загрузчика GRUB выделите строку с нужной версией линукса, для которого вам нужно сбросить пароль
  • Нажмите ‘e’ для редактирования. Выберите строку ядра. Добавьте ‘single’ в конец строки. Нажмите ‘b’ для загрузки. Если система продолжает запрашивать пароль рута, добавьте в конец строки init=/bin/bash Снова нажмите ‘b’ для загрузки

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

Когда нет возможности использовать GRUB
  • Загрузитесь с live CD
  • Выберите «Попробовать Ubuntu без изменений на вашем компьютере» (Try Ubuntu without any changes to your computer)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *