Disable the root account on Linux and prevent anyone from impacting the operations of your system negatively. Moreover, the same practice can help assure no one abuses power and authority that root access brings to the table.
A root account can be critical if rested within the wrong hands. That said, acquiring the ability to disable the root account on Linux is crucial. In the following article, I’ll help you learn exactly that.
Before you go ahead and disable the root account on Linux, you must create an administrative account upfront. It will ensure you’re open to using the sudo command and regain root user access.
Create an Administrative Account
Creating an administrative account is pretty straightforward. You need to launch the Terminal using the “Ctrl+Alt+T” key combination and invoking the useradd command. Together with that, use the passwd command and associate a healthy password.
Here is what the commands should look like:
$ useradd -m -c "Admin User" main_admin
$ passwd [desired strong password]
-c flags respectively work to create the user’s home directory and specify any comment moving forward.
Add User to a Group
Once you’re done with the creation process, the next task is adding the user to a particular group. For that, invoke the usermod command next to the
-G flag. While the former reflects on appending user accounts, the latter deals with specifying the desired group
You choose between sudo or wheel depending on the concerned system.
For CentOS/RHEL, use the following command:
$ usermod -aG wheel main_admin
For Debian/Ubuntu, pass the following command:
$ usermod -aG sudo main_admin
Switching the Primary root User
You’re now ready to switch and choose the created administrative account as the primary root user. This will allow you to move to the next step and disable the root account on Linux.
How to Disable the Root Account on Linux
There are several ways of getting the root account disabled on Linux. Stay tuned as I walk you through each method in the most easy-to-understand manner.
Disable Root Account by Altering Root User’s Shell
One of the most widely used methods of disabling the root account on Linux is by bringing alterations in the user shell. The process is simple, change the existing shell(the one which permits login) to any other which doesn’t, and that’s nearly it. For instance, you can change
The next task is modifying the /etc/passwd file. To do that, launch the file via any command-line editor, vim, for instance.
Run the following command:
Alter the following lines
Save the file and continue.
Now, whenever the root user tries to log themself in, they will get an error message stating that “This account is currently not available.” Changing the default message to something you want to display is a straightforward task. The only thing you’ll require is editing
Remember, the method works only with the programs that perform user logins via shell.
Disabling the root account by altering the root user’s shell is great. But the fact that it loads with some drawbacks makes users like us opt for a different method.
Disable the Root Account on Linux by a Console Device
Employing a console device to disable the root account on Linux is also quite handy. The method utilizes a
PAM module, popular as pam_securetty. The module allows root access if and when the concerned user is getting themselves logged in on a secure environment of
The good thing is that you can specify the
TTY devices to allow access to. However, emptying the file entirely will instruct the system to revoke the access.
Creating an Empty File
For creating an empty file, invoke the following command inside the Terminal:
Similar to the previous method discussed, this one also bags some form of limitations. The method is limited to showing the result on programs such as login—more advanced utilities like
ssh, and more goes unaffected.
Disabling the SSH Root Login on Linux
If you don’t know,
SSH offers one of the best ways to access remoter servers. Thankfully, bringing a few edits will help block all forms of root user login that fall under it. The concerned file is
Launch the file with a command-line editor. If you’re using
vim, run the following command:
Head over to the
PermitRootLogin section and set the value to
Save and close the file.
Finally, perform a quick
sshd restart to ensure the changes get successfully applied.
Blocking Root Access via PAM
The final method to disable the root account on Linux is using a modular called
PAM. Pluggable Authentication Modules offers a brilliant way to toggle between authentication structuring on Linux through
For disabling root access, start by launching the target service located inside
/etc/pam.d/directory and editing the same. Again, you can use any of your favorite editors but make sure to specify if you’re after restricting access to the
sshd services or simply login.
For instance, the
$ sudo [editor command] /etc/pam.d/ sshd is meant or blocking access to sshd services while
$ sudo [editor command] /etc/pam.d/ login works for the login access.
Add the required configuration:
Save and close the file.
After that, create a plain file
.etc.ssh/denier/user/ and include the item, and name it root. Keep in mind the file should only contain one item per line.
Set the required permissions using the
chmod command and continue.
That wraps this article. Here, I’ve guided you through four promising methods to disable the root account on Linux. I made sure everything was easy to digest, and you didn’t have a hard time getting the job done.
If this guide helped you, please share it.