Mengatur Permission Folder, File Web Server Linux yang Aman dan Stabil

Mengatur Permission Folder, File Web Server Linux yang Aman dan Stabil

Pada server web Linux, masalah Permission denied sering terjadi ketika user SFTP tidak bisa upload file atau web server gagal menulis file (cache, session, upload). Penyebab utamanya biasanya adalah pengaturan user, grup, dan permission yang tidak konsisten.

Artikel ini membahas konfigurasi permission yang aman dan direkomendasikan untuk server production menggunakan perintah berikut:

sudo usermod -aG www-data anto

find /var/www/example.com -type f -exec chmod 664 {} \;
find /var/www/example.com -type d -exec chmod 2775 {} \;
find /var/www/example.com -type d -exec chmod g+s {} \;

1. Menambahkan User ke Grup Web Server

sudo usermod -aG www-data anto

Penjelasan:

  • Menambahkan user anto ke grup www-data
  • www-data adalah grup standar web server (Apache/Nginx)

Manfaat:

  • User SFTP bisa menulis file melalui permission grup
  • Tidak perlu login sebagai root
  • Lebih aman untuk kerja tim

⚠️ Setelah menjalankan perintah ini, user wajib logout dan login ulang agar grup aktif.


2. Mengatur Permission File (664)

find /var/www/example.com -type f -exec chmod 664 {} \;

Arti permission 664:

-rw-rw-r--
  • Owner: read, write
  • Group: read, write
  • Other: read-only

Kenapa ini aman?

  • File PHP tidak perlu executable
  • User dalam grup bisa edit file
  • Publik tidak bisa mengubah file

3. Mengatur Permission Folder (2775)

find /var/www/example.com -type d -exec chmod 2775 {} \;

Arti permission 2775:

drwxrwsr-x
  • Owner & group bisa read, write, execute
  • Other hanya read & execute
  • Setgid aktif

4. Mengaktifkan Setgid pada Folder

find /var/www/example.com -type d -exec chmod g+s {} \;

Fungsi setgid:

  • File dan folder baru otomatis mengikuti grup folder induk
  • Mencegah masalah permission setelah upload
  • Sangat penting untuk server dengan banyak user / deployment

5. Kenapa Konfigurasi Ini Direkomendasikan?

✔ Aman untuk production
✔ Tidak menggunakan chmod 777
✔ Cocok untuk SFTP, Git, CI/CD
✔ Konsisten untuk web server & developer

Konfigurasi ini banyak digunakan pada:

  • Server Ubuntu / Debian
  • Apache atau Nginx
  • Aplikasi PHP (Laravel, CodeIgniter, WordPress)

6. Hasil Akhir yang Ideal

Folder:

drwxrwsr-x www-data www-data

File:

-rw-rw-r-- www-data www-data

7. Kesimpulan

Pengaturan permission yang benar tidak harus rumit, tetapi harus konsisten dan aman.

Standar yang direkomendasikan:

  • User SFTP → anggota grup www-data
  • Folder → 2775 + setgid
  • File → 664
  • Owner & group → www-data

Dengan konfigurasi ini, masalah permission dapat dihindari tanpa mengorbankan keamanan server.