Struktur File System Linux
Linux menggunakan struktur direktori hierarki dengan / (root) sebagai titik awal:
/
├── bin/ # binary/program essential
├── etc/ # konfigurasi sistem
├── home/ # home directory user
├── var/ # data variabel (log, cache)
│ ├── log/ # file log
│ └── www/ # web root (opsional)
├── tmp/ # file temporary
├── usr/ # program & library user
└── opt/ # software third-party
Permission Model
Setiap file punya 3 jenis permission untuk 3 kategori:
# Format: -rwxrwxrwx
# │├─┘├─┘├─┘
# │ │ │ └── Others (semua user lain)
# │ │ └── Group
# │ └── Owner
# └── Tipe (- = file, d = directory)
# r = read (4), w = write (2), x = execute (1)
# Contoh: rwxr-xr-- = 754
chmod 755 script.sh # owner: rwx, group: r-x, others: r-x
# 755 artinya group dan others mendapat read+execute (bisa baca & jalankan, tapi tidak bisa edit)
chmod 644 config.txt # owner: rw-, group: r--, others: r--
chmod +x deploy.sh # tambah execute untuk semua
Ownership
# Ubah pemilik file
chown www-data:www-data /var/www/html -R
# Lihat permission & owner
ls -la
# drwxr-xr-x 2 www-data www-data 4096 Jan 1 index.html
Permission Penting untuk Web Server
# File konfigurasi: hanya owner bisa baca/tulis
chmod 600 .env
# Direktori web: bisa diakses web server
chmod 755 /var/www/html
chown -R www-data:www-data /var/www/html
# Storage Laravel
chmod -R 775 storage/
chmod -R 775 bootstrap/cache/