How to recover a root password in Red Hat-based Linux systems
Posted: February 25, 2020 | by Glen Newell
Photo by Soonios Pro from Pexels
More Linux resources
We’ve all inherited systems we didn’t have any part of building. If you are a systems administrator, the day will come when you need to work on a system and don’t have the root password for any number of reasons—and statistically speaking, that day will come at the worst possible moment: you need access to that box *right now*.
Recovering the root password might seem frightening, but it doesn’t have to be difficult or complicated. On a RHEL/CentOS version 7 or later system, thanks to the Grub bootloader it’s actually pretty simple.
Begin by starting a kettle of water to boil (Optional, but recommended).
First, you need console access: Either at a keyboard and monitor locally, or via Virtual Machine remote console, you will need to see and interact with the bootloader.
Reboot the machine: As soon as the bootloader comes up with the selection screen, quickly tap the up and down arrows up and down to pause the countdown.
Select the kernel you want to boot into, and hit ‘ e ‘: This will take you into a screen where you can edit the grub bootloader script.
Find the line that refers to the kernel: There will be a series of ‘boot parameters’ here: these are instructions passed during the loading of the kernel.
For RHEL/CentOS 7, the line starts with ‘linux16’.
For RHEL/Centos 8x, and Fedora the line starts with ‘ linux ‘.
Add ‘rd.break’ at the end of that line (There are other things you can do here, but for now, this is all you need) [ Note: This change is temporary ].
Now hit Ctrl-x to run the edited bootloader script.
You’ll boot to a ‘rescue’ prompt that looks like this: switch_root:/# .
Remount the root partition in read-write mode so that you can run commands. Enter the following: mount -o remount rw /sysroot and then hit ENTER.
Now type chroot /sysroot and hit enter. This will change you into the sysroot (/) directory, and make that your path for executing commands.
Now you can simply change the password for root using the passwd command.
Next, before you reboot, you will need to make sure that SELinux allows the file changes. At the prompt ,enter: touch /.autorelabel . This will signal SELinux on the next reboot that the filesystem has changed (the changed password) and allow the change to be loaded. This will cause the whole filesystem to be ‘relabeled’ which might take a while, depending on the size of the filesystem and the speed of the machine, so be aware of this possibility.
Type exit to leave the chroot environment and enter reboot .
Go and make a cup of tea to reward yourself for your cleverness: The water should be boiling now. (Again, optional but recommended and highly dependent on your participation with Step #1.)
And that’s it. You should now have root password access to this system.
Want to try out Red Hat Enterprise Linux? Download it now for free.
Источник
Red hat linux root
Управляя домашним компьютером, пользователь должен выполнять некоторые действия под именем root или получить привилегии root, с помощью программ setuid , например sudo или su . Программы setuid — это программы, работающие с кодом пользователя ( UID ) владельца программы, а не запускающего их пользователя. В подробном списке файлов эти программы выделяются маленькой буквой s в разделе владельца, как показано ниже:
-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su
Однако системные администраторы организации должны определить, какие административные права должны иметь пользователи на своих компьютерах. С помощью PAM-модуля pam_console.so некоторые действия, обычно разрешённые только пользователю root, например, перезагрузку и извлечение съёмных устройств, можно разрешить первому вошедшему на физическую консоль пользователю (обратитесь к главе Подключаемые модули проверки подлинности (PAM) Справочного руководства Red Hat Enterprise Linux за дополнительными сведениями о модуле pam_console.so ). Однако выполнение других важных административных задач, таких как изменение параметров сети, настройка новой мыши или подключение сетевых устройств невозможно без прав администратора. В результате системные администраторы должны решить, какие административные полномочия должны получить пользователи их сети.
Если пользователи организации доверяют друг другу и разбираются в компьютерах, может быть неплохо дать им всем права root. Наделение их правами root будет означать, что мелкие вопросы, такие как добавление устройств или настройка сетевых интерфейсов, будут решать сами пользователи, освобождая администраторов для решения важных проблем, например, сетевой безопасности.
С другой стороны, назначение отдельным пользователям прав root может создать проблемы, например, следующие:
Неверная настройка компьютера — Пользователи с правами root, могут неправильно настроить свои компьютеры, после чего им потребуется помощь, или, что ещё хуже, могут создать дыры в безопасности, не догадываясь об этом.
Запуск небезопасных служб — Пользователи с правами root могут запускать на своих компьютерах небезопасные службы, например FTP или Telnet, что ставит под угрозу их имена и пароли, передаваемые по сети открытым текстом.
Запуск почтовых вложений под именем root — Хотя вирусы для Linux — редкость, но всё же они есть. И они представляют собой угрозу, только если их запускает пользователь root.
Если по этим или другим причинам администратору не хочется, чтобы пользователи имели права root, пароль root следует хранить в секрете и запретить доступ к первому уровню выполнения или монопольному режиму, защитив загрузчик паролем (подробнее эта тема рассматривается в разделе 4.2.2 Пароли загрузчика системы ).
Предотвращает вход в оболочку root и регистрирует попытки входа. |
Следующие программы не смогут работать с учётной записью root: |
· login |
· gdm |
· kdm |
· xdm |
· su |
· ssh |
· scp |
· sftp |
Программы, не использующие оболочку, например, клиенты FTP, почтовые клиенты и многие программы setuid. |
Следующие программы смогут работать с учётной записью root: |
· sudo |
· клиентов FTP |
· почтовых клиентов |
Предотвращает вход под именем root с консоли или по сети. Следующие программы не смогут работать с учётной записью root: |
· login |
· gdm |
· kdm |
· xdm |
· другие сетевые службы, открывающие tty |
Программы, которые не регистрируются под именем root, но выполняют административные задачи посредством setuid или других механизмов. |
Следующие программы смогут работать с учётной записью root: |
· su |
· sudo |
· ssh |
· scp |
· sftp |
Предотвращает доступ root с помощью набора инструментов OpenSSH. Следующие программы не смогут работать с учётной записью root: |
· ssh |
· scp |
· sftp |
Доступ root ограничен только для набора инструментов OpenSSH. |
Запрещает доступ root к сетевым службам, поддерживающим PAM. |
С учётной записью root не будут работать следующие службы: |
· клиенты FTP |
· почтовые клиенты |
· login |
· gdm |
· kdm |
· xdm |
· ssh |
· scp |
· sftp |
· любые службы, поддерживающие PAM |
Программы и службы, не поддерживающие PAM. |
Таблица 4-1. Способы отключения учётной записи root
Чтобы запретить пользователям непосредственный вход под именем root, системный администратор может задать для root оболочку /sbin/nologin в файле /etc/passwd . Это предотвратит доступ к учётной записи root с помощью команд, использующих оболочку, например su и ssh .
Программы, не нуждающиеся в оболочке, например, почтовые клиенты или команда sudo , по-прежнему могут работать под именем root.
Чтобы ещё больше ограничить доступ к учётной записи root, администраторы могут запретить вход под именем root с консоли, отредактировав файл /etc/securetty . В этом файле перечислены все устройства, с которых может регистрироваться root. Если файл не существует, пользователь root сможет войти в систему с любого устройства, будь то консоль или сетевой интерфейс. Это опасно, так как пользователь может входить в систему, используя Telnet, а при этом его пароль передаётся по сети в открытом виде. По умолчанию, в Red Hat Enterprise Linux файл /etc/securetty разрешает root подключаться только с физически подключенной к компьютеру консоли. Чтобы запретить вход root, очистите содержимое этого файла, выполнив следующую команду:
Предупреждение |
---|
Замечание |
---|