How to Check Integrity of File and Directory Using AIDE in Linux?


Integrity of files and directories is an essential aspect of system security and data protection. File integrity refers to the accuracy and completeness of the information stored in a file, while directory integrity concerns the structure, permissions, ownership, and attributes of directories.

When files or directories are tampered with or corrupted, they can cause critical errors, data loss, or even compromise system stability. Therefore, checking file and directory integrity is crucial for ensuring system reliability and preventing security breaches.

Installing AIDE on Linux

Requirements for Installing AIDE

Before installing AIDE, it is important to ensure that the system meets the requirements. To install and run AIDE, you will need root privileges, a working internet connection, and a supported Linux distribution.

AIDE supports many popular Linux distributions such as Ubuntu, Debian, Fedora, CentOS, and others. Additionally, make sure that the system has enough storage space for the installation files and databases.

Steps to Install AIDE on Linux

Once you have confirmed that your system meets the requirements for installing AIDE, you can proceed with the installation process. The following are the steps to install AIDE on your Linux system −

  • Open a terminal window and switch to root user or use sudo command.

  • Ensure all packages are up-to-date using your package manager's update command.

sudo apt update
  • Use your package manager's search command to search for "aide".

sudo apt-cache search aide
  • Use your package manager's install command to install "aide" package.

sudo apt install aide
  • Once installed verify installation status by typing “aide -v” in terminal After completing these steps successfully without any errors or issues noted in output we may proceed with creating an initial database with default settings which will be covered in section 3 of this article

Setting up an AIDE Database

Explanation of an AIDE Database

Before we can start using AIDE to check file and directory integrity, we must first set up an AIDE database. An AIDE database is essentially a snapshot of the current state of the files and directories on your system.

This snapshot is used as a reference point for future checks to ensure that no unauthorized changes have been made. The database contains information about each file and directory including its permissions, ownership, size, and checksum.

Creating an Initial Database With Default Settings

To create an initial AIDE database with default settings, you can use the following command −

sudo aideinit  

This will create a new database file at `/var/lib/aide/`. By default, this will include all files and directories on your system except for those excluded in `/etc/aide/aide.conf`.

It's important to note that creating the initial database can take some time depending on how many files you have on your system. It's recommended to let this process run in the background or during non-peak hours.

Customizing the Database to fit Specific Needs

While the default settings may work for most users, you may want to customize your AIDE configuration to fit specific needs. For example, you may want to exclude certain directories or files from being checked by AIDE or include additional rules for specific types of files.

To customize your AIDE configuration, edit `/etc/aide/aide.conf` using a text editor. This file contains all of the rules and options used by AIDE when checking file and directory integrity.

For example, if you wanted to exclude the directory `/home/user1` from being checked by AIDE, you would add the following line −


If you wanted to include additional rules for checking certain types of files, you would add a new rule to the appropriate section of the configuration file. For example, if you wanted to check all `.txt` files for integrity, you would add the following rule −

/data/myfiles/*.txt p+i+n+u+g+s+m+c  

Customizing your AIDE configuration can be complex and will depend on your specific needs. It's important to review the AIDE documentation and seek help from online resources or experts in the field.

Checking File Integrity with AIDE

One of the primary functions of AIDE is to check the integrity of files on a system. This is important because it can help detect any unauthorized changes to files, such as those made by a malicious actor trying to compromise system security. To check the integrity of files using AIDE, we use the "aide" command.

Using the "aide" Command to Check File Integrity

To use the "aide" command, we need to have an existing AIDE database set up. Once this is in place, we can run the following command −

aide --check  

This will perform a full file check against the database and report any discrepancies found.

Understanding the Output of the "aide" Command

The output of the "aide" command can be quite extensive and may include a lot of information that is not immediately understandable. However, there are some key things to look out for when reviewing this output −

  • The total number of entries checked should match between new and old databases.

  • Any changes detected should be verified as expected (e.g., due to system updates or other authorized changes).

  • If any unexpected changes are detected, these should be investigated further.

Troubleshooting Common Errors

If errors are encountered during an AIDE file check, these may be due to configuration issues or other problems with your system. Some common errors include −

  • "Error initializing hash algorithm": This may indicate that a required hashing algorithm is missing from your system.

  • "Error opening database": This could indicate that there is an issue with your database configuration.

  • "Warning: New inode": This may indicate that a new file has been added to the system since the last AIDE check.

If you encounter any errors while using AIDE, it is important to investigate these further to ensure that your system remains secure and that your AIDE checks are accurate and effective.

Checking Directory Integrity with AIDE

Using the "aide" Command to Check Directory Integrity

Just like how we checked file integrity, the "aide" command can also be used to check for directory integrity. To do so, we'll need to specify the directory containing the AIDE database by using the "-B" flag followed by the path of the directory in question.

For example −

sudo aide --check -B /var/lib/aide/  

This tells AIDE to check all files and directories under "/var/lib/aide/", which is where our AIDE database is located. The output will show any changes or modifications made since the last time AIDE was run.

Understanding the Output of the "aide" Command for Directories

The output of "aide --check" for directories will look similar to that for files, but with a few key differences. Instead of showing just individual files and their attributes, it will show each subdirectory within the specified directory and all files within them.

It will also show whether any files or subdirectories have been added or removed since last checking their respective parent directories. This information is useful in detecting any unauthorized modifications made to a system.


In today's digital age, file and directory integrity is more important than ever. It is crucial to ensure that files and directories are not tampered with or accessed by unauthorized users. By using AIDE in Linux, you can easily detect any changes made to your files or directories, ensuring their integrity remains intact.

AIDE is a powerful tool that can be used to check the integrity of files and directories on a Linux system. With its customizable options for advanced configuration, it offers flexibility in meeting different user needs. The process of setting up an AIDE database and checking for file/directory integrity is straightforward, making it easy for even novice users to utilize.

Updated on: 31-Aug-2023


Kickstart Your Career

Get certified by completing the course

Get Started