Mengubah permission file dan folder secara massal pada Linux

Gambar ilustrasi

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

Linux permission explanation Penjelasan permission linux

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

  1. Referensi: Stackoverflow  ↩︎