Accidentally changed owner of `/etc/sudoers` to non root. Can't sudo or revert

2 min read 21-10-2024
Accidentally changed owner of `/etc/sudoers` to non root. Can't sudo or revert

Accidentally changing the ownership of critical system files can lead to significant access issues. One common scenario is when the owner of the /etc/sudoers file is unintentionally changed to a non-root user. When this happens, users lose the ability to use sudo to gain superuser privileges, creating a predicament. Below is an analysis of the issue and practical steps for recovery.

Problem Scenario

Imagine you are logged into your Linux system and, in a moment of confusion or haste, you run the following command:

chown someuser /etc/sudoers

This command changes the ownership of the /etc/sudoers file to someuser, a non-root user. As a result, you will be unable to run any command with sudo, including commands needed to revert this change.

Understanding the Importance of /etc/sudoers

The /etc/sudoers file is crucial for the security and functionality of Unix-like operating systems. It determines which users have permission to run commands with elevated privileges via the sudo command. When the ownership of this file is changed, the system cannot properly enforce permissions, leading to access issues for all users, including administrators.

Steps to Recover Access

If you find yourself unable to use sudo, you can follow these steps to regain access:

  1. Boot into Recovery Mode:

    • Restart your machine and access the boot menu. For most distributions, you can do this by pressing Esc, Shift, or F12 during startup.
    • Select the recovery mode option.
  2. Remount the File System:

    • When in recovery mode, you will be in a root shell. However, the file system is often mounted as read-only. Remount it with write permissions:
      mount -o remount,rw /
      
  3. Change Ownership Back to Root:

    • Now that you have write access, you can change the ownership of the /etc/sudoers file back to root:
      chown root:root /etc/sudoers
      
  4. Restore Permissions:

    • After resetting the owner, ensure the permissions are set correctly. The /etc/sudoers file should typically have permissions set to 440:
      chmod 440 /etc/sudoers
      
  5. Exit and Reboot:

    • Exit the recovery shell and reboot your system normally:
      exit
      reboot
      

Practical Example: Preventative Measures

To avoid finding yourself in this situation, consider the following preventative measures:

  • Utilize Version Control: Keep track of changes made to your configuration files, including /etc/sudoers, using version control systems like Git. This allows you to revert back to a known good state easily.

  • Backup Critical Files: Regularly back up important system files. Use a script that can back up the /etc/sudoers file automatically at intervals.

  • Implement a Sudoers Validation Check: Use visudo to edit the /etc/sudoers file. This built-in command checks for syntax errors before applying any changes, reducing the chance of mistakes.

  • Educate Users: Train users on the implications of modifying critical system files and the proper ways to use commands like chown and chmod.

Conclusion

Accidentally changing the ownership of the /etc/sudoers file can leave you locked out from essential administrative functions. However, by following the recovery steps outlined above, you can restore access to your system and safeguard against future issues.

Useful Resources

By understanding the importance of the /etc/sudoers file and taking proactive measures, you can maintain system stability and security while minimizing the risk of errors.