Jawaban:
Singkatnya: tidak.
Anda harus memulihkan dari cadangan. (Beberapa alat cadangan mungkin memiliki opsi untuk hanya mengembalikan izin saja, yang lain dapat membuat daftar file yang didukung dengan izin mereka dan Anda dapat menggunakannya untuk memperbaiki sistem Anda.)
Jika Anda tidak memiliki cadangan, Anda harus memperbaiki semua itu secara manual.
sudo chown -R user:user /
itu, kemungkinan sistem disemprot sangat buruk sehingga Anda tidak dapat memulihkan dari cadangan.
chown
menjelaskan, kemungkinan Anda tidak akan dapat melakukan apa pun sebelum menginstal keseluruhan sistem dari awal; sistem bahkan tidak memiliki root
akun, dan sudo
tidak akan berfungsi. Mungkin patut mencoba untuk boot ke shell pengguna tunggal, tetapi jangan berharap itu berfungsi.
sudo
atau bahkan su
akan terus berfungsi ketika semua file yang relevan dimiliki oleh user
adalah masalah yang berbeda (mungkin bukan karena antara lain bit SUID pada exe akan hilang).
Hanya jika Anda mengetahui kepemilikan pengguna dan grup dari setiap file dan direktori di bawah Anda /
direktori .
Bahkan kemudian, Anda sudah menghancurkan kepemilikan file sistem kritis yang perlu dimiliki oleh root, termasuk sudo
perintah. Anda mungkin perlu memasang hard drive di sistem lain - dan perhatikan bahwa sistem lain kemungkinan tidak akan memiliki pemetaan UID dan GID yang sama dengan yang baru saja Anda musnah.
Buat salinan seluruh hard drive jika Anda bisa, lalu instal ulang sistem operasi Anda. Setelah Anda selesai melakukannya, Anda dapat mencoba menyalin file kembali ke sistem yang baru dihapus dan mengembalikan kepemilikannya. Anda mungkin dapat berasumsi (walaupun tidak 100% andal) bahwa semua yang ada di bawah /home/foo
adalah milik pengguna foo
, dan bahwa setiap file spool di bawah /var/mail
dimiliki oleh pengguna yang sesuai (jika Anda memiliki email pada sistem). Anda mungkin dapat pergi tanpa mengembalikan sebagian besar file yang tidak ada di bawah /home
, tergantung pada apa yang telah Anda lakukan dengan sistem.
Dan kemudian mulailah menumbuhkan kebiasaan memeriksa ulang setiap perintah yang Anda jalankan sudo
sebelum Anda menekan Enter.
Jika distro Anda berbasis RPM, Anda HANYA dapat mengembalikan file yang diinstal oleh paket rpm.
Untuk mengembalikan semua izin paket:
rpm --setperms -a
Untuk mengembalikan semua pemilik paket (pengguna / grup):
rpm --setugids -a
Jika -a tidak berjalan, Anda bisa menjalankan bash loop:
Untuk izin:
for x in $(rpm -qa); do rpm --setperms $x; done
Untuk pemilik:
for x in $(rpm -qa); do rpm --setugids $x; done
Diambil dari: http://www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html
Anda dapat menyimpan versi saat ini dan kemudian menguraikannya untuk kembali dengan menggunakan opsi -v.
chown -R nobody:nobody -v /tmp/some_file > /tmp/chown.log
cat /tmp/chown.log
Isinya adalah:
changed ownership of `/tmp/some_file' from me:users to nobody:nobody
Dengan menggunakan bahasa skrip favorit Anda dan ekspresi reguler, Anda dapat menjalankan proses menyakitkan untuk mengembalikannya (jika harus).
Saya sangat merekomendasikan tidak melakukan chown rekursif pada / karena Anda akan mengekspos / etc / shadow atau file penting lainnya.
sudo chown -R user:user ..
dapat memiliki efek yang sama dengan yang disebutkan di sini jika Anda satu tingkat di bawah root sistem file. Jangan mencoba hal seperti ini.