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 {} \;
Contents
1. Menambahkan User ke Grup Web Server
sudo usermod -aG www-data anto
Penjelasan:
- Menambahkan user
anto ke grupwww-data www-dataadalah 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.