TMR 23 : Adinusa Linux System Administration - Modul 2

+ Module 2 : Struktur Direktori Standar Linux (Filesystem Hierarchy Standard - FHS)





Memahami struktur direktori di Linux adalah hal mendasar bagi siapa pun yang ingin mengelola sistem operasi ini, terutama untuk keperluan administrasi dan troubleshooting. Filesystem Hierarchy Standard (FHS) adalah standar yang mengatur bagaimana direktori dan file disusun dalam sistem Linux.

Direktori Utama & Fungsinya

Berikut adalah ringkasan direktori utama dalam sistem Linux beserta fungsinya:

Direktori Fungsi Utama
/  -        Root directory, titik awal dari seluruh struktur filesystem.
/bin  -        Berisi perintah dasar yang dibutuhkan semua pengguna (ls, cp, dll).
/boot  -        Menyimpan file penting untuk proses boot, seperti kernel dan GRUB.
/dev  -        File representasi perangkat keras, seperti /dev/sda untuk hard disk.
/etc  -        File konfigurasi sistem dan aplikasi (/etc/passwd, dll).
/home  -        Direktori personal bagi setiap user biasa (/home/namauser).
/lib & /lib64  -        Library (pustaka) pendukung program di /bin dan /sbin.
/media  -        Mount point untuk media removable seperti USB atau CD/DVD.
/mnt  -        Lokasi sementara untuk mounting filesystem manual.
/opt  -        Tempat instalasi software tambahan (umumnya dari vendor pihak ketiga).
/proc  -        Filesystem virtual untuk informasi runtime sistem dan proses.
/run  -        Tempat penyimpanan data runtime sistem, menggantikan /var/run.
/root  -        Direktori home khusus untuk superuser root.
/sbin  -        Perintah sistem penting untuk administrator (fdisk, iptables, dll).
/srv  -        Menyimpan data dari layanan (service) seperti web atau FTP server.
/sys  -        Filesystem virtual berisi informasi perangkat dan kernel Linux.
/tmp  -        Tempat penyimpanan file temporer (otomatis terhapus setelah beberapa hari).
/usr  -        Aplikasi dan utilitas yang bisa digunakan oleh banyak user (biasanya read-only).
/var  -        Menyimpan data yang berubah-ubah: log, cache, email, database, dll.


Tujuan FHS

  • Menyediakan struktur direktori yang konsisten di seluruh distribusi Linux.

  • Mempermudah developer, admin, dan pengguna dalam mengelola dan memelihara sistem.
  • Dikelola oleh The Linux Foundation (dulunya oleh Free Standards Group).


Fleksibilitas Antar Distribusi

  • Distribusi Linux boleh menambahkan direktori baru sesuai kebutuhan (misalnya /tftpboot, /misc).

  • Asalkan direktori inti tetap mengikuti standar, maka tetap dianggap kompatibel dengan FHS.


Perkembangan & Adaptasi Modern

  • Versi resmi FHS belum selalu mencakup fitur-fitur terbaru Linux.

  • Contohnya, banyak distribusi kini memakai /run sebagai pengganti /var/run, walau belum semua terdokumentasi di FHS versi lama.


Contoh Direktori Tambahan (Non-Standar)

Direktori         Keterangan
/tftpboot         Umumnya digunakan untuk kebutuhan network boot (PXE) pada diskless workstation.
/misc         Tempat penyimpanan berkas acak atau data yang tidak masuk ke kategori lain.

>    Root Directory (/)

Konsep Dasar Root Directory

Root directory (`/`) merupakan direktori paling atas dalam hierarki filesystem Linux. Meskipun seluruh filesystem terlihat seperti satu pohon besar, pada kenyataannya bisa terdiri dari beberapa partisi dan filesystem yang digabungkan bersama.


Karakteristik Khusus Root Partition

Partisi yang mengandung root directory memiliki sifat khusus:

1.    Biasanya berada di partisi khusus yang terpisah

2.    Direktori lain seperti `/home`, `/var`, dan `/opt` akan di-mount setelahnya

3.    Harus mengandung semua file esensial yang diperlukan untuk:

       -    Proses booting sistem

       -    Restore sistem dari backup eksternal (tape, media removable, NAS)

       -    Proses recovery dan repair sistem


Persyaratan Root Partition

Root partition harus menyediakan:

-    Utility dasar

-    File konfigurasi penting

-    Informasi boot loader

-    Data startup esensial lainnya


Hal ini memungkinkan administrator sistem yang berpengalaman untuk:

-    Mendiagnosa masalah sistem

-    Melakukan perbaikan sistem yang rusak


Aturan Penting tentang Root Directory

1.    Menurut Filesystem Hierarchy Standard (FHS):

       -    Tidak boleh ada aplikasi atau package yang membuat subdirektori baru di bawah root directory

2.    Perbedaan penting:

       -    `/` (root directory) bukanlah `/root` (home directory untuk user root)

       -    Pemilihan kata ini memang bisa membingungkan bagi pemula


>    Directory /bin 

Fungsi dan Pentingnya /bin

Direktori `/bin` merupakan salah satu direktori kritis dalam sistem Linux karena:

1.    Menyimpan program executable dan script esensial yang diperlukan oleh:

   -    Administrator sistem

   -    Pengguna reguler (unprivileged users)


2.    Harus tersedia bahkan ketika filesystem lain belum di-mount, khususnya dalam situasi:

   -    Booting dalam single-user mode

   -    Mode recovery/pemulihan sistem


Karakteristik Khusus /bin

1.    Struktur Konten:

   -    Hanya berisi file executable (program dan script)

   -    Tidak boleh mengandung subdirektori apapun

   -    Beberapa executable mungkin digunakan secara tidak langsung oleh script sistem


2.    Program Wajib:

   Direktori ini harus memuat command-line tools fundamental seperti:

   -    cat, chmod, chown, cp, ls

   -    mkdir, mv, rm, rmdir

   -    ps, kill, mount, umount

   -    sh (shell dasar), su, sync

   -    Utilitas sistem: dmesg, hostname, uname


Perkembangan Terkini

1.    Perubahan Pola Distribusi Modern:

   Beberapa distro terbaru (RHEL, CentOS, Fedora, Ubuntu) telah menyatukan:

     -    /bin dengan /usr/bin

     -    /sbin dengan /usr/sbin

   Dilakukan melalui symbolic link sehingga kedua direktori menunjuk lokasi sama


2.    Alasan Perubahan:

   -    Konsep pemisahan /usr di partisi terpisah dianggap sudah ketinggalan zaman

   -    Penyederhanaan struktur filesystem


Perbandingan dengan /usr/bin

1.    /bin berisi program esensial yang harus ada sejak awal boot

2.    /usr/bin berisi:

   -    Program yang tidak esensial untuk booting

   -    Aplikasi yang hanya diperlukan oleh pengguna non-root


Catatan Penting

-    Distro tradisional mempertahankan pemisahan fisik antara `/bin` dan `/usr/bin`

-    Distro modern menggunakan pendekatan unified melalui symbolic links namun tetap mempertahankan kompatibilitas dengan struktur tradisional






Dari Gambar diatas tersebut kalian dapat melihat daftar isi file dan direktori di dalam "/bin"


>    Directory /boot

Fungsi Utama /boot

Direktori "/boot" menyimpan file-file esensial yang mutlak diperlukan untuk proses booting sistem Linux. File-file ini harus tersedia sebelum kernel mulai mengeksekusi program user-mode.


File Penting dalam /boot

1.    File Wajib

   -    vmlinuz: Kernel Linux terkompresi (versi compressed)

   -    initramfs (atau initrd pada beberapa sistem): Filesystem RAM awal yang di-mount sebelum root filesystem utama tersedia


2.    File Pendukung:

   -    "config": File konfigurasi untuk kompilasi kernel

   -    System.map: Tabel simbol kernel untuk keperluan debugging


Karakteristik Khusus

Variasi Konten:

  -    Isi "/boot" bervariasi tergantung distribusi dan versi kernel

  -    Nama file biasanya mengandung versi kernel (contoh: "vmlinuz-5.4.0-42-generic")

Perbedaan Nomenklatur:

  -    Beberapa sistem mungkin menggunakan "initrd" (initial ram disk) sebagai pengganti "initramfs"


Catatan Implementasi

File-file dalam "/boot" memiliki nama panjang yang mencerminkan:

  -    Versi kernel

  -    Arsitektur sistem

  -    Spesifikasi distribusi


>    Directory /dev

Fungsi dan Karakteristik /dev

Direktori `/dev` berisi file perangkat khusus (device nodes) yang merepresentasikan:

- Perangkat bawaan sistem

- Perangkat eksternal yang terhubung


Jenis Device Files

1.    Character devices:

   -    Memproses data sebagai byte stream (contoh: keyboard, serial port)

2.    Block devices:

   -    Menangani I/O dalam bentuk blok data (contoh: hard disk, USB drive)


Pengecualian

-    Perangkat jaringan (seperti eth1 atau wlan0) tidak memiliki device node di `/dev`

-    Direferensikan langsung melalui nama


Mekanisme Modern (udev)

Sistem udev membuat device node secara dinamis:

  -    Hanya ketika perangkat terdeteksi

  -    Tidak ada file permanen di `/dev`

Pada filesystem yang belum di-mount, `/dev` akan terlihat kosong


Perbandingan Sistem Lama

Pada sistem kuno/embedded:

  -    Device node dibuat secara statis selama instalasi

Menggunakan utilitas:

    -    MAKEDEV (skrip pembuat device node)

    -    mknod (perintah untuk membuat device node manual)


Devices Node



Catatan Penting

-    File di `/dev` bukan file biasa, melainkan interface ke driver perangkat

-    Sistem modern menggunakan udev untuk manajemen perangkat yang lebih dinamis dan efisien


>    Directory /etc 

Fungsi Utama /etc

Direktori /etc merupakan lokasi sentral untuk:

-    File konfigurasi spesifik mesin lokal

-    Skrip startup sistem

-    Tidak boleh mengandung program binary yang executable



Konten Penting dalam /etc

Berikut contoh file dan direktori konfigurasi kritis yang umum ditemukan:


1.    File Autentikasi & Pengguna:

   -    passwd - Database user account

   -    group - Informasi group pengguna

   -    shadow - Password terenkripsi (biasanya tersembunyi)


2.    Konfigurasi Jaringan:

   - hosts - Mapping alamat IP ke hostname

   - resolv.conf - Konfigurasi DNS resolver

   - networks - Informasi jaringan


3.    Konfigurasi Sistem:

   -    fstab - Konfigurasi filesystem yang di-mount

   -    inittab - Konfigurasi init process (pada sistem SysV)

   -    mtab - Info filesystem yang sedang mounted


4.    Konfigurasi Layanan:

   -    ssh/sshd_config - Konfigurasi SSH server

   -    crontab - Jadwal task otomatis

   -    syslog.conf - Konfigurasi logging


5.    File Startup:

   - `profile` - Konfigurasi environment shell global

   -    bashrc - Konfigurasi Bash shell

   -    motd - Message of the Day


Variasi Distribusi

Distribusi seperti Red Hat menambahkan subdirektori khusus:

  -    /etc/sysconfig - Berisi konfigurasi sistem tambahan

  -    /etc/yum - Konfigurasi package manager YUM

  -    /etc/httpd - Konfigurasi web server Apache


Karakteristik Penting

1.    Readable by Humans:

   - Hanya berisi file teks (bukan binary)

   - Dapat dibaca dan dimodifikasi dengan text editor


2.    Hierarchy Terorganisir:

   - Konfigurasi aplikasi sering disimpan di subdirektori

   - Contoh: `/etc/nginx/` untuk konfigurasi Nginx


3.    Permission Ketat:

   - Kebanyakan file hanya bisa diubah oleh root

   - Beberapa file sensitif (seperti shadow) memiliki permission sangat restriktif


>    Directory /home

Fungsi dan Struktur /home

Direktori `/home` merupakan lokasi standar untuk:

- Direktori pribadi pengguna (contoh: `/home/username`)

Penyimpanan:

  -    File data pribadi

  -    Konfigurasi user-specific

  -    Program executable milik pengguna


Karakteristik Utama

1.    Struktur Hierarki:

   -    Dapat berisi subdirektori grup (contoh: `/home/students`, `/home/staff`)

   -    Setiap user memiliki home directory terpisah


2.    Notasi Khusus:

   -    "~" (tilde): Shorthand untuk home directory user saat ini

   -    $HOME`: Environment variable yang merujuk ke home directory


3.    Contoh Ekivalensi:

    >        ls -l $HOME/public_html

    >        ls -l ~/public_html



Perbedaan Sistem UNIX/Linux

1.    Linux:

   -    Home directory langsung di `/home`

   -    Root user memiliki home directory terpisah di `/root`


2.    Sistem UNIX Lain (e.g., Solaris:

   -    Home directory mungkin di `/export/home`

   -    Di-mount ke `/home` via automount (biasanya dari NFS server)


Pengecualian

Home directory untuk root:

  -    Selalu berada di `/root` (bukan `/home/root`)

  -    Pada sistem UNIX lama mungkin menggunakan `/` (dapat menyebabkan clutter)


>    Directory /lib dan /lib64

Fungsi Utama

Direktori `/lib` dan `/lib64` menyimpan library esensial yang diperlukan untuk:

-    Menjalankan binary di `/bin` dan `/sbin`

-    Proses booting sistem

-    Eksekusi perintah dalam root filesystem


Struktur Konten

1.    Library Sistem:

   -    `/lib`: Library 32-bit (pada sistem yang mendukung dual architecture)

   -    `/lib64`: Library 64-bit (pada sistem 64-bit)


2.    Komponen Khusus:

   -    `/lib/modules/<kernel-version-number>`: Modul kernel (termasuk device driver)

   -    `/lib/security`: File PAM (Pluggable Authentication Modules)


Perkembangan Terkini

1.    Penyatuan Direktori:

   Beberapa distro modern menyatukan:

     -    `/lib` dengan `/usr/lib`

     -    `/lib64` dengan `/usr/lib64`

   Menggunakan symbolic link untuk mempertahankan kompatibilitas


2.    Alasan Perubahan:

   -    Konsep pemisahan `/usr` di partisi terpisah dianggap sudah ketinggalan zaman

   -    Penyederhanaan struktur filesystem


Catatan Penting

-    Library di direktori ini bersifat kritis untuk operasi dasar sistem

-    Sistem yang mendukung dual architecture (32/64-bit) harus menyimpan kedua jenis library

-    Perubahan struktur ini terutama terlihat pada distro seperti RHEL, Fedora, dan Ubuntu versi terbaru


>    Directory /media

Fungsi Utama

Direktori `/media` secara tradisional digunakan sebagai mount point untuk:

-    Media removable (CD, DVD, USB drive)

-    Perangkat penyimpanan eksternal


Mekanisme Mounting Modern

1.    Proses Otomatis:

Sistem udev secara dinamis:

     -    Membuat direktori saat media terdeteksi

     -    Melakukan mounting filesystem

     -    Menghapus direktori setelah media di-unmount/dicabut


2.    Struktur Penamaan:

   -    Nama mount point ditentukan oleh rules udev

   -    Jika media memiliki multiple partition, akan muncul multiple entry


Perkembangan Terbaru

Pada distro Linux terkini:

  -    Media removable biasanya muncul di `/run/media/[username]/...`

  -    Bukan lagi di `/media` seperti versi sebelumnya


Interaksi User

File manager (seperti Nautilus) akan:

  -    Secara otomatis muncul saat media ter-mount

  -    Menyediakan antarmuka grafis untuk mengakses konten media


Catatan Penting

-    Direktori mount point bersifat sementara (temporary)

-    Lokasi mounting dapat bervariasi tergantung distribusi dan versi

-    Perubahan ke `/run/media` mencerminkan evolusi sistem filesystem Linux modern


>    Directory /mnt 

Fungsi Utama  

Direktori `/mnt` disediakan untuk keperluan **mounting filesystem sementara** oleh administrator sistem.  


Penggunaan Umum  

Filesystem jaringan:  

  -    NFS  

  -    Samba  

  -    CIFS  

  -     AFS  

Mounting manual untuk keperluan troubleshooting atau akses sementara.  


Perubahan dalam Penggunaan  

Dulu: `/mnt` juga digunakan untuk media removable (seperti CD/USB).  

Sekarang: Media removable lebih sering di-mount di:  

  -    `/media` (distro lama)  

  -    `/run/media/[username]` (distro modern).  


Panduan Penggunaan

-    Bukan untuk instalasi program: Direktori ini sebaiknya digunakan hanya untuk mounting manual yang bersifat sementara.  

-    Direktori alternatif (selain `/mnt`) lebih disarankan jika `/mnt` sedang digunakan.  


>    Directory /opt

Fungsi Utama

Direktori `/opt` dirancang untuk aplikasi yang mengisolasi semua file-nya dalam satu lokasi terpusat, alih-alih menyebarkannya di berbagai direktori sistem.  


Tujuan Penggunaan

1.    Memudahkan instalasi & uninstalasi:  

   -    Semua file terkait satu paket disimpan dalam subdirektori khusus (contoh: `/opt/nama_aplikasi`).  

   -    Struktur yang terprediksi memudahkan administrator melacak file.  


2.    Kemudahan Manajemen:  

Cocok untuk:  

     -    Software proprietary (contoh: Zoom, Google Earth)  

     -    Aplikasi yang ingin menghindari ketergantungan pada variasi distribusi Linux.  


Struktur Konten  

-    Contoh Isi `/opt`:  


  /opt/brother/    # Driver printer Brother

  /opt/google/     # Aplikasi Google (Chrome, Earth)

  /opt/zoom/       # Aplikasi Zoom

  

-    Subdirektori Reserved (untuk admin sistem):  

  `/opt/bin`, `/opt/doc`, `/opt/lib`, dll. *(jarang digunakan)*.  


Perbandingan dengan Package Manager  

Package Manager (RPM/APT):  

  - Lebih terintegrasi dengan sistem.  

  - File tersebar di `/usr/bin`, `/etc`, dll., tetapi mudah dilacak via database paket.  

opt:  

  - Alternatif bagi vendor yang ingin menghindari konflik dependensi atau kebijakan distribusi.  


Catatan Penting  

-    Aplikasi di `/opt` harus tetap berfungsi tanpa bergantung pada subdirektori reserved.  

-    Direktori ini biasanya kosong default, kecuali jika ada software pihak ketiga yang diinstal secara manual.  



>    Directory /proc 

Direktori /proc merupakan bagian penting dari sistem Linux yang berfungsi sebagai jendela langsung untuk melihat kondisi internal kernel dan proses yang sedang berjalan.


Konsep Dasar

/proc adalah pseudo-filesystem yang:

  • Menyediakan informasi sistem dan proses secara real-time

  • Disimpan sepenuhnya di memori, bukan di hard disk

  • Akan kosong jika sistem sedang tidak berjalan


Karakteristik Unik

  1. Virtual Files

    • File di /proc sering berukuran 0 byte, namun akan menampilkan data saat dibaca

    • Timestamp-nya selalu menunjukkan waktu terkini karena isi file di-generate secara on-demand

  2. Struktur Dinamis

    • Setiap proses aktif memiliki subdirektori tersendiri, misalnya /proc/1234 untuk proses dengan PID 1234

    • Isi /proc dikelompokkan berdasarkan topik dan komponen sistem


File dan Direktori Penting

Path Fungsi
/proc/interrupts         Daftar interrupt yang sedang aktif di hardware
/proc/meminfo         Informasi tentang penggunaan memori sistem
/proc/mounts         Daftar filesystem yang sedang di-mount
/proc/partitions         Menampilkan informasi tentang partisi disk
/proc/filesystems         Menunjukkan jenis filesystem yang didukung kernel
/proc/sys/         Berisi konfigurasi kernel yang bisa dimodifikasi
/proc/scsi/         Informasi tentang perangkat 


Mekanisme Pembacaan

  • Data dihasilkan hanya saat file dibaca (lazy evaluation)

  • Tidak ada proses update berkala—semua isi /proc selalu menampilkan kondisi sistem 


Contoh Penggunaan

  • Cek penggunaan memori:

    cat /proc/meminfo
    
  • Melihat daftar proses yang sedang berjalan:

    ls /proc/ | grep -E '^[0-9]+$'

>    Directory /sys

Direktori /sys adalah bagian penting dari sistem Linux modern, berperan sebagai antarmuka langsung ke kernel, khususnya dalam hal manajemen perangkat keras dan konfigurasi runtime.


Konsep Dasar

/sys adalah pseudo-filesystem (disebut juga sysfs) yang:

  • Menyediakan informasi real-time terkait:

    • Perangkat (devices) dan driver

    • Modul kernel

    • Struktur dan konfigurasi sistem

  • Semua data berada di memori, bukan di hard disk

  • Direktori ini akan kosong jika sistem tidak aktif


Perbandingan dengan /proc

Fitur     /sys     /proc
Tujuan     Manajemen perangkat & kernel     Informasi umum & proses
Format Data     Satu nilai per file     Multi-line, beragam format
Usia     Lebih baru     Lebih lama
Standarisasi     Lebih ketat dan terstruktur     Lebih Fleksibel


Karakteristik Khusus

1.    Struktur Sederhana

Mayoritas file di /sys hanya berisi satu baris/nilai

Contoh penggunaan:

    cat /sys/class/net/eth0/operstate

Untuk mengecek status interface jaringan eth0.

2.    Fungsi Ganda

  • Read: Untuk memantau status sistem dan perangkat keras
  • Write: Untuk mengubah perilaku kernel secara langsung (runtime)


Contoh Penggunaan

  • Melihat daftar modul kernel:

    ls /sys/module/
    
  • Memeriksa status power pada CPU:

    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor


>    Directory /root

Fungsi Khusus  

Direktori `/root` merupakan home directory eksklusif untuk akun root (superuser).  



Karakteristik Penting

1.    Penggunaan yang Direkomendasikan:  

   -    Hanya untuk operasi yang memerlukan hak akses root (administrasi sistem).  

   -    Tidak ditujukan untuk aktivitas pengguna biasa.  


2.    Perbedaan dengan /home:  

   -    Lokasi terpisah dari home directory pengguna biasa (yang ada di `/home/username`).  

   -    Memiliki permission ketat (700) sehingga hanya root yang bisa mengakses.  


Catatan Keamanan  

-    Penggunaan akun root harus dibatasi hanya untuk keperluan administratif yang kritis.  

Direktori ini biasanya berisi:  

  -    File konfigurasi personal root (contoh: `.bashrc` khusus root).  

  -    Script atau log administrasi sistem.  


>    Directory /sbin

Direktori /sbin menyimpan berbagai binary penting yang dibutuhkan untuk proses-proses kritis sistem, seperti booting, perbaikan, dan administrasi tingkat lanjut.



Fungsi Utama

/sbin berisi binary esensial yang digunakan untuk:

  • Proses booting awal sistem

  • Pemulihan (recovery) sistem

  • Reparasi filesystem

  • Tugas administrasi sistem tingkat lanjut


Binary Penting (jika subsistemnya tersedia)

Perintah Fungsi
fdisk             Pengelolaan partisi disk
fsck             Pemeriksaan dan perbaikan filesystem
init             Proses induk (PID 1)
mkfs             Membuat filesystem baru
reboot             Merestart sistem
ifconfig             Konfigurasi jaringan (versi legacy)
swapon / swapoff             Mengelola swap memory


Perubahan pada Distro Modern

Beberapa distribusi Linux terbaru (seperti RHEL atau Ubuntu) melakukan penyederhanaan struktur dengan:

  • Menjadikan /sbin sebagai symlink ke /usr/sbin

  • Menjadikan /bin sebagai symlink ke /usr/bin

Tujuannya: untuk menyederhanakan dan menyeragamkan struktur filesystem.


Catatan Kritis

1.    Akses Terbatas

Hanya user root yang bisa menjalankan sebagian besar perintah di /sbin.


2.    Ketergantungan Minimal 

Binary di /sbin harus dapat dijalankan tanpa bergantung pada filesystem lain (contohnya: /usr belum ter-mount).


Contoh Struktur

ls -l /sbin
# Pada distro modern, kemungkinan besar ini adalah symlink ke /usr/sbin


>    Directory /srv

Fungsi Utama  

Direktori `/srv` menyimpan data spesifik-situs (site-specific) yang dilayani oleh sistem, sesuai Filesystem Hierarchy Standard (FHS).  


Tujuan Penggunaan  

1.    Konsistensi Lokasi:  

   -    Memudahkan pengguna menemukan data layanan tertentu (e.g., web, FTP).  

2.    Struktur Terpusat:  

Menyediakan hierarki tunggal untuk:  

     -    Data *read-only*  

     -    Data *writable*  

     -    Script (e.g., CGI).  


Struktur Subdirektori  

Tidak ada standar baku, tetapi contoh umum berdasarkan protokol:  


  /srv/www/      # Data website

  /srv/ftp/      # File FTP

  /srv/rsync/    # Data rsync

  /srv/cvs/      # Repositori CVS


Penamaan subdirektori diserahkan kepada administrator sistem.  


Catatan Penting  

-    Bukan untuk konfigurasi (gunakan `/etc`) atau log (gunakan `/var/log`).  

-    Sering kosong pada sistem default, kecuali untuk layanan yang sengaja dikonfigurasi.  


>    Directory /tmp

Fungsi Utama

Direktori `/tmp` digunakan untuk menyimpan file-file sementara yang dapat diakses oleh semua pengguna dan aplikasi. File-file ini bersifat volatile (tidak permanen).


Kebijakan Penyimpanan Berdasarkan Distribusi

1.    Pembersihan Berdasarkan Waktu:

   -    Beberapa distro menghapus file yang lebih tua dari 10 hari secara otomatis (via cron jobs)


2.    Pembersihan Saat Reboot:

   -    Ubuntu: Menghapus seluruh isi `/tmp` setiap reboot


3.    Ramdisk (tmpfs):

   -    Fedora: Menggunakan filesystem tmpfs (disimpan di RAM)

   -    Semua data hilang saat reboot

   -    Risiko kehabisan memori jika file terlalu besar


Karakteristik Penting

-    Akses Universal: Dapat ditulisi oleh semua user

-    Volatilitas: File tidak dijamin bertahan lama

-    Bahaya Potensial:

  -    Pada sistem tmpfs, file besar dapat menghabiskan memori

  -    Banyak aplikasi tetap menyimpan file besar di `/tmp` meski tidak direkomendasikan


Catatan Penggunaan

-    Alternatif untuk file besar: Gunakan `/var/tmp` (biasanya lebih persisten)

-    Pengguna bisa mengarahkan aplikasi ke lokasi lain melalui environment variable, tetapi banyak yang tidak mengetahui cara ini


>    Directory /usr

Direktori /usr adalah salah satu komponen penting dalam struktur filesystem Linux. Ia menyimpan sebagian besar program dan utilitas sistem yang tidak dibutuhkan saat proses booting.



Fungsi dan Karakteristik Utama

  1. Hierarki Sekunder

    • Berisi file yang tidak diperlukan saat proses boot awal sistem

    • Dapat diletakkan di partisi terpisah dari root (/)

    • Bisa dibagikan ke banyak mesin (melalui jaringan) selama arsitekturnya sama

  2. Status Data

    • Umumnya bersifat read-only

    • Tidak boleh dimodifikasi langsung oleh paket software


Struktur Penting dalam /usr

Subdirektori Fungsi
/usr/bin                 Binary umum untuk pengguna biasa (non-essential)
/usr/sbin                 Binary untuk administrasi sistem (non-essential)
/usr/lib                 Library pendukung untuk binary
/usr/local                 Tempat instalasi software secara lokal
/usr/share                 Data architecture-independent (misalnya: manual pages)

Perubahan pada Distro Modern

Distribusi Linux terbaru mulai menyatukan struktur filesystem, antara lain:

  • /binsymlink ke /usr/bin

  • /sbinsymlink ke /usr/sbin

  • /libsymlink ke /usr/lib

Tujuannya: karena pemisahan /usr sebagai partisi terpisah sudah dianggap tidak relevan di banyak sistem modern.


Aturan Penting

  1. Instalasi Software

    • Paket tidak diperbolehkan membuat direktori baru langsung di bawah /usr

    • Untuk instalasi software non-paket, gunakan direktori /usr/local

  2. Kompatibilitas

    • Beberapa distribusi mungkin masih menyediakan symlink demi alasan kompatibilitas


>    Directory /var 

Direktori /var digunakan untuk menyimpan data dinamis yang terus berubah selama sistem berjalan. Ini termasuk log, cache, spool, dan file temporer yang bersifat penting bagi operasi harian sistem.



Fungsi Utama

/var menyimpan berbagai jenis data yang sifatnya berubah secara aktif, seperti:

  • File log sistem dan aplikasi

  • Data spool (antrian) seperti cetak dan email

  • File administratif aplikasi

  • Cache dan file temporer


Karakteristik Penting

  1. Volatilitas

    • Tidak bisa di-mount sebagai read-only, karena datanya terus berubah.

  2. Keamanan & Stabilitas

    • Disarankan untuk di-mount di filesystem terpisah

    • Mencegah lock system jika partisi ini penuh


Subdirektori Penting

Subdirektori Konten Utama
/var/log             File log sistem dan aplikasi (contoh: syslog, auth.log)
/var/spool             Antrian untuk email (/var/spool/mail), cetakan (/var/spool/cups), cron, dll
/var/cache             Data cache aplikasi (misal: cache APT di Debian/Ubuntu)
/var/lib             Metadata dan database aplikasi (contoh: /var/lib/dpkg)
/var/tmp             File temporer lebih persisten daripada /tmp


Contoh Penggunaan

  • Melihat log sistem:

    cat /var/log/syslog
    
  • Memeriksa antrian printer:

    ls /var/spool/cups
    


>    Directory /run 

Direktori /run digunakan untuk menyimpan data runtime sementara yang dibutuhkan segera sejak sistem mulai melakukan proses booting. Semua informasi di dalamnya hanya bersifat sementara dan akan hilang setelah reboot.


Fungsi Utama

/run menyimpan data penting seperti:

  • Informasi status proses dan layanan aktif

  • File PID, socket, dan runtime lainnya

  • Data yang tidak perlu bertahan setelah sistem dimatikan


Karakteristik Khusus

  1. Implementasi

    • Di-mount sebagai tmpfs (RAM disk)

    • Hanya berada di memori, tidak disimpan di disk

  2. Kompatibilitas

    • Beberapa direktori lama kini menjadi symlink ke /run, seperti:

      • /var/run/run

      • /var/lock/run/lock

  3. Distribusi Modern

    • Hampir semua distro Linux modern sudah menggunakan /run

    • Contoh isi:

      • File PID → /run/sshd.pid

      • Socket file → /run/docker.sock


Perbandingan dengan /tmp

Fitur /run /tmp
Tujuan         Data runtime sistem         File sementara untuk user/aplikasi
Persistence         Hilang setelah reboot         Bergantung pada kebijakan distribusi
Akses         Khusus untuk sistem         Terbuka untuk semua pengguna




Komentar