Андрей Смирнов
Время чтения: ~7 мин.
Просмотров: 2

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

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

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

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

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

Теперь рассмотрим, как изменить пароль Linux для другого пользователя.

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

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

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

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

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

passwd1.png

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

passwd2.png

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

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

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

passwd3.png

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

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

passwd4.png

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

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

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

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

passwd5.png

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

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

passwd6.png

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

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

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

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

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

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

passwd8.png

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

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

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

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

passwd7.png

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

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

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

Как изменить пароль root на VDS, когда он неизвестен

Поменять пароль root в этом случае можно через панель VMmanager, используя встроенную систему удалённого доступа к серверу Virtual Network Computing (VNC).

  1. Заходим в VMmanager, далее в раздел «Виртуальные машины» и выбираем нужный сервер. Перезагружаем VDS с помощью кнопки «Перезапуск». В процессе подтверждаем намерение перезапустить виртуальную машину, нажимая «Ок».
  2. После завершения перезагрузки, нажимаем кнопку «VNC».
  3. В открывшемся окне диспетчера задач нажимаем кнопку перезапуска «SendCtrlAltDel» в верхнем правом углу.
  4. После загрузки данных сервера в загрузчике GRUB возникнет подсвеченная ОС «Debian GNU/Linux». Нажимаем английскую клавишу «e» для входя в редактирование.
  5. В открывшемся окне выбираем (клавишами клавиши «↓» и «↑») строку, начинающуюся с «linux». Находим значение «ro», а также конец фрагмента (перед «echo»).
  6. Меняем значение «ro» на «rw», а в конце отрезка дописываем «init=/bin/bash». После этого нажимаем сочетание клавиш «Ctrl» и «х» (английское) для перехода в аварийный режим.
  7. Набираем команду смены пароля «passwd» (→ Enter).
  8. Вводим новый пароль (→ Enter) и подтверждаем его (→ Enter). Набор происходит в «слепом» режиме (знаки не отображаются совсем).
  9. Сообщение об обновлении пароля появится в командной строке.
  10. Чтобы удостоверится, что все изменения перешли из оперативной на дисковую память применяем команду «sync» (→ Enter). После чего даём команду холодной перезагрузки сервера «reboot -f» (→ Enter).
  11. Пароль root виртуального сервера успешно заменён.

Используемые источники:

  • https://losst.ru/kak-smenit-parol-v-linux
  • https://eternalhost.net/base/vps-vds/smena-parolya-root-debian

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации