Skip to main content

Command Palette

Search for a command to run...

Linux File System Hunting

Updated
6 min read
Linux File System Hunting

When we first learn Linux, we usually interact with commands like ls, cd, and mkdir. But after spending time exploring the file system deeply, I realized something fascinating:

Linux is not just an operating system — it is a transparent machine where almost everything is exposed as files.

This exploration was less about navigation and more about understanding how Linux thinks internally.

I approached this assignment like a system investigator, tracing how the OS manages users, networking, booting, processes, permissions, and devices through its file system.

What I discovered completely changed the way I look at Linux.


1. /etc — The Control Room of Linux

The first place I explored was /etc.

At first glance, it looks like just another directory.
But this is actually the central control room of the system.

This directory contains configuration files that define how the entire operating system behaves.

Some important files I found:

  • /etc/hosts

  • /etc/resolv.conf

  • /etc/passwd

  • /etc/fstab

  • /etc/systemd/

Why it exists

Linux separates configuration from executable code.

This means applications and system services do not need to be rewritten when behavior changes.

For example:

  • changing hostname

  • changing DNS

  • mounting disks

  • configuring services

all happen through configuration files.

What problem it solves

It makes Linux extremely modular and configurable.

Instead of editing binaries, admins simply update text files.

Key insight

This was my first major realization:

Linux prefers text-based control over hidden settings panels.

This design makes debugging and automation far easier.

2. DNS Resolution — How

Linux Finds the Internet

One of the most interesting discoveries was /etc/resolv.conf.

This file controls how domain names are converted into IP addresses.

For example:

nameserver 8.8.8.8

This tells Linux which DNS server to query.

Why it exists

Humans remember names like google.com, not IP addresses.

The system needs a resolver mechanism.

What problem it solves

Without this file, internet access through domain names would fail.

Deep insight

What fascinated me was that this file is often auto-generated by:

  • NetworkManager

  • DHCP client

  • systemd-resolved

This means Linux networking is dynamic, not static.

Even something as simple as opening a website depends on this tiny file.


3. Routing Logic Hidden in /proc/net/route

This was one of my favorite discoveries.

Instead of storing routing info in a traditional config file, Linux exposes it through:

/proc/net/route

This file shows how packets travel outside the machine.

Why it exists

The kernel needs routing decisions for:

  • local network traffic

  • internet traffic

  • gateway selection

What problem it solves

Without routing rules, the OS would not know where to send packets.

Deep insight

This made me understand that:

Networking decisions are visible through the filesystem itself.

That’s an incredible design principle.

Linux literally lets you inspect kernel routing logic as if reading a text file.


4. /var/log — The Memory of the Operating System

If /etc is the brain, then /var/log is the memory.

This folder records everything important happening in the system.

Examples I explored:

  • /var/log/syslog

  • /var/log/auth.log

  • /var/log/kern.log

Why it exists

Systems need observability.

What problem it solves

It helps diagnose:

  • login failures

  • service crashes

  • kernel errors

  • suspicious activity

Deep insight

Reading logs felt like reading the story of the machine.

For example, authentication logs reveal failed login attempts.

This is critical for security investigations.


5. User Identity — /etc/passwd and /etc/shadow

This discovery helped me understand Linux security deeply.

/etc/passwd

Stores:

  • username

  • UID

  • GID

  • home directory

  • shell

Example:

ritu:x:1000:1000:/home/ritu:/bin/bash

/etc/shadow

Stores encrypted password hashes.

Why it exists

Linux separates public identity data from sensitive secrets.

What problem it solves

Protects passwords from normal users.

Deep insight

This separation is a brilliant security design.

Even if someone can read user metadata, they cannot access password hashes without elevated privileges.


6. Permission Model -Linux’s Core Security Layer

This was one of the most powerful concepts I explored.

Every file in Linux has permissions like:

-rwxr-xr--

This defines access for:

  • owner

  • group

  • others

Why it exists

Linux is built as a multi-user operating system.

What problem it solves

Prevents unauthorized access.

Deep insight

I learned that many security issues happen because of wrong permissions.

Sometimes the OS is secure, but human configuration mistakes make it vulnerable.

This made permissions feel less like syntax and more like security architecture.


7. /proc — A Window into Live System Internals

This was the most fascinating part of my exploration.

The /proc directory is not stored on disk.

It is a virtual filesystem generated by the kernel in real time.

Examples:

  • /proc/cpuinfo

  • /proc/meminfo

  • /proc/uptime

  • /proc/<pid>/

Why it exists

Provides visibility into kernel state and processes.

What problem it solves

Makes system introspection easy.

Deep insight

This changed my understanding completely.

Linux exposes running processes as directories.

Every process becomes inspectable.

For example:

/proc/1234/

contains:

  • open files

  • environment variables

  • memory maps

  • execution status

This is system transparency at its best.


8. /dev — Hardware as Files

Linux treats hardware as files.

This is one of its most elegant design philosophies.

Examples:

  • /dev/sda → disk

  • /dev/tty → terminal

  • /dev/null → discard output

Why it exists

Provides a unified interface for hardware interaction.

What problem it solves

Makes devices accessible using the same read/write operations as files.

Deep insight

This was mind-blowing.

Even a hard disk is represented like a file.

This abstraction makes Linux incredibly powerful.


9. /boot — Where Linux Begins Life

This directory contains everything needed for startup.

Files include:

  • kernel image

  • initramfs

  • bootloader configs

Why it exists

The system must know how to start before userspace loads.

What problem it solves

Defines the initial execution chain.

Deep insight

Booting is simply a sequence of controlled file loading.

There is no magic.

Only structured execution.


10. systemd — The Service Orchestrator

Modern Linux systems heavily depend on systemd.

Service definitions live in:

/etc/systemd/

Why it exists

Manages background services.

What problem it solves

Ensures processes start correctly and restart if they fail.

Deep insight

This is where Linux behaves like an orchestrated ecosystem.

For example:

  • database starts before backend

  • network initializes before services

This dependency handling is extremely powerful.


My Biggest Realization

Before this exploration, Linux felt like a command-based OS.

Now it feels like:

A transparent system built on readable logic.

Every important component is exposed:

  • configs

  • devices

  • processes

  • routing

  • logs

  • permissions

This openness is what makes Linux so powerful for engineers.


Linux is not hiding anything.
It invites you to explore.
🔍