Mengubah permission file dan folder secara massal pada Linux
Ada hal penting yang baru saya sadari ketika membuka file aplikasi lama yang sudah online. Saya cukup terkejut mengetahui semua file dan folder aplikasi yang sudah saya upload memiliki permission 777
.
Hal ini terjadi karena sewaktu membuatnya di localhost semua file dan folder saya set permissionnya menjadi 777
dan lupa untuk mengembalikannya seperti semula.
Permission 777
berbahaya karena semua user baik owner, group dan other/everyone dapat membaca, menulis dan mengeksekusi file dan folder tersebut. Hal ini bisa dimanfaatkan oleh orang yang tidak bertanggung jawab untuk masuk dan bahkan merusak aplikasi/website yang kita buat.
Untuk mencegah hal-hal yang tidak diinginkan, saya mengubah semua permission file dan folder tersebut menjadi 755
untuk folder dan 644
untuk file.
Untuk mengubah permission file dan folder tersebut saya memanfaatkan fitur “Change permissions” file manager dari cPanel. Namun karena cukup merepotkan dan membutuhkan waktu lama, akhirnya saya mengubahnya secara massal melalui terminal dengan akses SSH.
Setelah mengubah file yang sudah online, saya juga mengubah file yang masih ada di localhost. Untuk mengubah permission ini saya juga memanfaatkan perintah/command line di terminal.
Nah, bagi Anda yang ingin melakukan hal yang sama namun belum begitu mengetahui perintah-perintah yang ada di Linux, silakan simak terlebih dahulu Kumpulan perintah dasar Linux .
Jika sudah, lanjut ke tutorial1 berikut:
- Buka terminal lalu gunakan perintah
cd
untuk masuk ke dalam folder yang isinya ingin diubah permissionnya. Misalnya simpeg. - Kemudian tampilkan isi folder simpeg beserta permissionnya dengan menuliskan perintah
ls -l
. - Untuk mengubah permission “semua folder” yang ada dalam folder simpeg tadi, ketikan perintah di bawah ini lalu tekan enter.
sudo find * -type d -print0 | xargs -0 chmod 0755
- Jika muncul permintaan password, isi dengan password yang Anda gunakan.
- Sedangkan untuk mengubah permission “semua file” yang ada dalam folder simpeg, gunakan perintah di bawah ini:
sudo find . -type f -print0 | xargs -0 chmod 0644
- Lalu lihat apakah permission file dan folder sudah berubah atau belum dengan menuliskan perintah
ls -l
lalu enter.
Perhatikan kedua perintah di atas, huruf d
menunjukkan direktori/folder dan huruf f
menunjukkan file. Sedangkan angka 0755
dan 0644
menunjukkan permission yang digunakan.
Untuk memahami hak akses pada Linux, silakan perhatikan gambar di bawah ini
Berikut penjelasan singkat mengenai permission file dan folder di Linux yang ditulis dalam bilangan oktal.
7 = 4+2+1 - read, write, execute
6 = 4+2 - read write
5 = 4+1 - read execute
4 - read
3 = 2 + 1 write, execute
2 - write
1 - execute
Referensi: Stackoverflow ↩︎