Mengenal Folder dan Struktur Direktori Linux
Pendahuluan
Sistem operasi Linux dibangun di atas prinsip Everything is a File. Memahami struktur direktori (filesystem hierarchy) bukan sekadar menghafal nama folder, melainkan memahami bagaimana sistem operasi, aplikasi, dan pengguna berinteraksi dengan data. Kesalahan dalam mengelola struktur direktori sering menjadi akar masalah dari kegagalan deployment, isu keamanan, atau degradasi performa I/O.
Artikel ini membedah arsitektur direktori Linux berdasarkan standar Filesystem Hierarchy Standard (FHS), memberikan panduan praktis navigasi, manajemen izin, dan strategi optimasi untuk lingkungan produksi.
Prasyarat & Persiapan
Sebelum memulai, pastikan Anda memiliki:
1. Akses ke Server Linux: Ubuntu 20.04/22.04 LTS, Debian 11, atau CentOS/RHEL 8/9.
2. Terminal SSH: Akses root atau user dengan hak sudo.
3. Paket Utilitas Dasar: coreutils, findutils, dan procps (biasanya sudah terinstall by default).
Jika Anda membutuhkan bantuan dalam memahami logika scripting atau konfigurasi kompleks, Anda dapat memanfaatkan asisten AI seperti ChatGPT Plus atau Claude Pro untuk debugging perintah bash yang rumit.
Arsitektur Direktori Linux (FHS)
Berikut adalah peta struktur direktori utama yang wajib dipahami oleh setiap engineer:
| Direktori | Fungsi Utama |
|---|---|
/ (Root) |
Titik awal seluruh filesystem. |
/bin |
Binary executable dasar (bash, ls, cp, mv). |
/sbin |
Binary sistem untuk administrasi (iptables, fsck). |
/etc |
Konfigurasi sistem dan aplikasi (passwd, hosts). |
/home |
Direktori home untuk user non-root. |
/root |
Direktori home untuk user root. |
/tmp |
File sementara (dihapus saat reboot). |
/var |
Data yang berubah-ubah (log, database, spool). |
/usr |
Program user, library, dan dokumentasi. |
/opt |
Aplikasi pihak ketiga yang diinstal secara manual. |
/dev |
Device files (disk, terminal, null). |
/proc |
Filesystem virtual berisi info proses & kernel. |
Langkah Demi Langkah
Step 1: Navigasi Dasar dan Inspeksi Struktur
Gunakan perintah standar untuk menjelajah. Hindari penggunaan cd tanpa argumen jika Anda tidak yakin di mana posisi Anda.
# Menampilkan direktori saat ini
pwd
# Menampilkan isi direktori dengan detail (ukuran, izin, pemilik)
ls -lah /
# Menampilkan tree struktur hingga kedalaman 2 level
# (Pastikan paket 'tree' terinstall: sudo apt install tree)
tree -L 2 /
Tips: Jika output tree terlalu panjang, gunakan flag -d untuk hanya menampilkan direktori:
tree -L 2 -d /etc
Step 2: Memahami Izin Akses (Permissions)
Izin file adalah mekanisme keamanan utama Linux. Format rwxr-xr-x terdiri dari 3 kelompok: Owner, Group, dan Others.
# Cek izin file konfigurasi kritis
stat /etc/passwd
# Ubah izin file log agar hanya bisa dibaca oleh root dan group adm
sudo chmod 640 /var/log/syslog
# Ubah kepemilikan direktori aplikasi
sudo chown -R www-data:www-data /var/www/html
Best Practice: Jangan pernah memberikan izin 777 (rwxrwxrwx) pada direktori produksi. Gunakan prinsip Least Privilege.
Step 3: Manajemen Direktori untuk Aplikasi
Ketika deploying aplikasi, struktur direktori harus konsisten. Contoh struktur untuk aplikasi web Node.js di /opt:
# Buat struktur direktori standar
sudo mkdir -p /opt/myapp/{bin,config,logs,data}
# Set izin dasar
sudo chmod 755 /opt/myapp
sudo chmod 700 /opt/myapp/config
# Buat user khusus untuk aplikasi (isolasi keamanan)
sudo useradd -r -s /bin/false myapp
sudo chown -R myapp:myapp /opt/myapp
Step 4: Mengelola File Log dan Data Variabel
Direktori /var dirancang untuk data yang berubah ukuran. Jangan menyimpan data aplikasi besar di /home atau /root karena partisi root (/) biasanya terbatas ukurannya.
# Cek penggunaan disk per direktori (top 10 terbesar)
du -sh /* 2>/dev/null | sort -hr | head -10
# Rotasi log manual (contoh sederhana)
sudo cp /var/log/myapp.log /var/log/myapp.log.$(date +%Y%m%d)
sudo truncate -s 0 /var/log/myapp.log
Untuk manajemen log yang lebih canggih, gunakan logrotate. Jika Anda kesulitan menulis konfigurasi logrotate.conf, Perplexity Pro dapat membantu Anda mencari contoh konfigurasi spesifik untuk stack teknologi Anda.
Step 5: Pembersihan dan Optimasi I/O
Direktori /tmp dan /var/tmp sering menumpuk file sampah.
# Hapus file di /tmp yang tidak diakses dalam 7 hari
sudo find /tmp -type f -atime +7 -delete
# Cek inode usage (penting jika disk penuh tapi space masih ada)
df -i /
Tips Optimasi & Keamanan
- Mount Point Terpisah: Untuk database (MySQL/PostgreSQL) atau aplikasi dengan I/O tinggi, mount partisi terpisah di
/var/libatau/data. Ini mencegah partisi root (/) penuh akibat log atau data yang membengkak. - Read-Only Filesystem: Untuk container atau sistem kritis, pertimbangkan untuk mount
/etcdan/usrsebagai read-only. - Audit Perubahan: Gunakan
auditduntuk memantau perubahan pada file di/etc.
bash sudo auditctl -w /etc/passwd -p wa -k passwd_changes sudo ausearch -k passwd_changes - Dokumentasi Struktur: Jika Anda mengelola banyak server, dokumentasikan struktur direktori kustom Anda. Tools seperti Notion AI sangat berguna untuk membuat wiki internal yang terstruktur dan mudah dicari oleh tim.
Troubleshooting Error Umum
1. "Permission Denied"
Penyebab: User tidak memiliki izin baca/eksekusi pada direktori atau file.
Solusi:
# Cek izin setiap level direktori dari root hingga file target
ls -ld / /var /var/log /var/log/syslog
# Pastikan group user sesuai
groups $USER
2. "No Space Left on Device"
Penyebab: Disk penuh atau inode penuh.
Solusi:
# Cek space blok
df -h
# Cek space inode
df -i
# Cari file terbesar
sudo find / -xdev -type f -size +100M -exec ls -lh {} \;
3. Direktori Hilang Setelah Reboot
Penyebab: Direktori dibuat di /tmp atau /run yang bersifat volatile (dihapus saat boot).
Solusi: Pindahkan data persisten ke /var/lib atau /opt. Jika Anda perlu membuat skrip inisialisasi otomatis, gunakan systemd atau cron. Gemini Advanced dapat membantu Anda menulis unit file systemd yang benar.
Kesimpulan
Memahami struktur direktori Linux adalah fondasi dari administrasi sistem yang sehat. Dengan mengikuti standar FHS, mengisolasi data variabel di /var, dan menerapkan prinsip Least Privilege pada izin file, Anda dapat membangun sistem yang lebih aman, mudah di-debug, dan scalable.
Selalu ingat: Konsistensi struktur direktori lebih penting daripada kecerdasan skrip. Jika struktur Anda rapi, troubleshooting akan menjadi 10x lebih cepat.
Untuk dokumentasi lebih lanjut, referensikan man pages atau konsultasikan dengan tim DevOps Anda. Jika Anda membutuhkan bantuan dalam menulis dokumentasi teknis untuk infrastruktur Anda, Jasper atau Writesonic dapat membantu menghasilkan konten yang profesional dan terstruktur.