Сброс пароля linux

Как восстановить доступ к Debian Linux в случае проблем с sudo или утратой root-пароля

В некоторых ситуациях может получиться так, что мы потеряем административный доступ к серверу на базе Debian GNU/Linux. Например, к такому исходу могут привести некорректные действия администратора по настройке механизма sudo (ошибки при правке файлов и/или ) и, как следствие, получение ошибки «Username is not in the sudoers file» при любых дальнейших попытках использования sudo. Иногда бывают ситуации, когда локальный доступ к серверу есть, а данные административной учётной записи недоступны и требуется восстановить административный доступ к серверу.

Загрузка в recovery mode

В типичных ситуациях в Linux имеется режим восстановления Recovery Mode, который, как правило, доступен из загрузчика ОС. В этом режиме наша Linux-система доступна в режиме супер-пользователя root, и мы можем исправить в ней имеющиеся у нас проблемы, например внести корректировки в файлы sudo или добавить/изменить учётные данные локального администратора.

Для того, чтобы попасть в меню загрузки, в процессе запуска ОС Debian нажимаем кнопку Shift. В появившемся меню загрузчика GRUB выбираем расширенный режим загрузки:

Затем выбираем интересующее нас ядро Linux в режиме recovery mode…

Однако в случае с Debian, где супер-пользователь root в конфигурации по умолчанию выключен, мы можем получить сообщение о невозможности загрузки консоли восстановления «Cannot open access to console, the root account is locked»:

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

Нестандартная загрузка

В процессе загрузки в GRUB выбираем в списке ядер нужное нам ядро (режим recovery mode здесь уже не важен) и нажимаем «e» для редактирования параметров загрузки.

Находим строку начинающуюся с «linux …»

В конце строки меняем значение «» на «», а в самом конце строки дописываем вызов оболочки «».

После чего для продолжения загрузки жмём F10

Теперь мы получили беспарольный root-доступ к нашему серверу. Здесь можно исправить имеющиеся у нас проблемы, например внести корректировки в файлы sudo. После внесения нужных правок система может быть загружена обычным образом (все сделанные нами ранее изменения в GRUB были временными).

Дополнительные источники информации:

  • Ubuntu Wiki — Lost Password?
  • How to Fix “Username is not in the sudoers file. This incident will be reported” in Ubuntu

Проверено на следующих конфигурациях:

Версия ОС
Debian GNU/Linux Stretch 9.4

Автор первичной редакции:Алексей Максимов
Время публикации: 13.06.2018 15:45

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

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

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

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

Как вручную поменять пароль

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

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

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

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

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

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

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

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

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

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

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

Как поменять пароль группы

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

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

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

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

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

Я часто создаю новые учетные записи пользователей и меняю или устанавливаю пароль для этих аккаунтов в пакете ящиков Linux. Создать нового пользователя можно с помощью командной строки. Проблема заключается в изменении пароля. В Linux мы используем passwd для изменения пароля, но passwd требует ввода от stdin для получения нового пароля. Мы можем изменить пароль пользователя в одной командной строке. Это позволит сэкономить много времени, особенно при создании группы учетных записей пользователей.

Мы будем использовать один пример, чтобы представить, как изменить пароль пользователя Linux в одной командной строке. Предположим, мы вошли в систему как root и хотим изменить пароль пользователя linuxinsider на linuxpassword.

Команда passwd запрашивает новый пароль дважды. И эти два входа (один и тот же пароль) разделены одним «Enter». Эмулировать это можно с помощью команды echo с опцией -e. Когда -e действует, экранированные символы будут интерпретированы. Следовательно, n в вводе echo отображается как «новая строка». Кроме того, на современном Linux с достаточно новым паролем вы можете использовать опцию —stdin, чтобы позволить passwd принимать пароль от STDIN вместо того, чтобы запрашивать новый пароль дважды.

Поэтому, чтобы изменить пароль в нашем примере, мы просто выполняем одну команду:

Это также может быть помещено в один скрипт bash или выполнено на удаленном узле командой ssh.

Например, мы можем изменить пароль linuxuser на пакет серверов (100 серверов: от 10.1.0.1 до 10.1.0.100):

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

$ Echo -e «your_current_pass nlinuxpassword nlinuxpassword» | ПАРОЛЬ

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
DS-сервис
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: