Memulihkan permission di CentOS
Mungkin karena ngantuk kemarin malam saya sukses mengacaukan setting permission dan ownership di VPS CentOS saya. Jadi saya secara tidak sengaja mengeksekusi perintah berikut:
chown root:root -R /
chmod 777 -R /
Yang kalau dipahami sehancur – hancurnya hak akses dan kepemilikan di Linux mestinya masih tetap berfungsi. Yang terjadi malah pada direktori dan file bisa muncul pesan error Permission denied
or Access denied
. Bahkan saat membuka sesi SSH baru ke servernya langsung gagal karena Invalid password
dan muncul juga pesan Connection reset by remote server
. Suram. 🙁
Karena disana masih ada data penting jadi tidak bisa dihapus dan install ulang VPSnya, juga karena saya tidak memiliki backupnya. Jadi mau tidak mau harus berusaha memperbaiki permission dan owner dari file dan direktori yang ada.
Berbekal sesi koneksi SSH yang masih aktif dan Google akhirnya saya ketemu satu solusi untuk memulihkan permission dan ownership di CentOS:
rpm --setperms nama_aplikasi
rpm --setugids nama_aplikasi
Ini dilakukan satu per satu per nama aplikasinya. Repot kan?
Kita bisa mengotomatiskan perintah diatas secara massal secara rekursif dengan perintah berikut:
for p in $(rpm -qa); do rpm --setperms $p; done
for p in $(rpm -qa); do rpm --setugids $p; done
Selesai. Dan setelah sukses langsung saya backup dan pindahkan datanya supaya aman. Setelah itu install ulang. Jadi apakah memang berhasil diperbaiki dan setelahnya bisa digunakan secara normal dalam jangka panjang? Terus terang saya kurang tahu. Tidak mau ambil resiko jadi langsung dibersihkan semuanya dan mulai lagi dari awal.
Oh ya, kalau anda ingin tahu kenapa kesalahan chmod 777 itu fatal bisa membaca penjelasannya disini: http://serverfault.com/questions/364677/why-is-chmod-r-777-destructive#364684