Saya baru-baru ini mengetik perintah
sudo chmod 777 -R /
setelah itu beberapa hal suka
sudo -i
tidak bekerja secara normal. Jadi saya bertanya-tanya apakah ada cara saya bisa mengatur ulang izin folder ke keadaan semula?
ubuntu
permissions
chmod
Braiam
sumber
sumber
Jawaban:
Hal ini dimungkinkan untuk kembali dari situasi berantakan ini.
Saya menjalankan lagi jenis yang sama pada masalah (beberapa bug dalam skrip yang saya tulis) dan menyelesaikannya, tetapi Anda perlu meminta bantuan beberapa ahli. Berhati-hatilah!
Pertama, situasi saya lebih mudah untuk diselesaikan karena saya memiliki sistem dual boot (Ubuntu dan instal Fedora lama saya), tetapi menjalankan OS dari CD / DVD, atau kunci USB harus melakukan hal yang sama.
Pertama saya memasang sistem file saya seperti ini (jangan lupa untuk membuat poin mount):
Kemudian saya menjalankan perintah berikut (masalah saya hanya ada di beberapa direktori kritis) untuk menyalin izin dari sistem yang sedang berjalan ke sistem yang berantakan (sebenarnya, dalam kasus saya, saya menginstal sistem Ubuntu di Virtual Box di bawah fedora dan mendapat izin di sana):
Dan kemudian saya menjalankan skrip restoreperms.sh.
Saya bisa boot lagi di Ubuntu.
Isi dari restoreperms.sh akan menjadi seperti:
Saya tidak mengujinya tetapi harus bekerja untuk pemilik dan grup pemilik juga. Sesuatu seperti:
Tentu saja, Anda harus berhati-hati di sini, bahwa UID dan GID adalah sama di kedua sistem, tetapi untuk pengguna dan grup yang terkait dengan sistem, ini seharusnya tidak menjadi masalah.
Edit:
Selain itu, pemilik pengaturan akan membatalkan bendera SGID dan SUID , yang menyebabkan masalah aneh (Misalnya, Anda tidak akan dapat melakukan sudo kecuali izinnya 4755). Anda harus, dan hanya harus menetapkan izin SETELAH pemilik pengaturan. JANGAN SIMPAN informasi izin file lengkap bersama dengan informasi pemilik.
Rk:
Sekarang, saya memiliki perintah ini di cronjob, berjalan setiap hari (bisa berminggu-minggu) untuk menyimpan informasi itu. Ini akan membuat solusinya lebih mudah di lain waktu tetapi, tentu saja, karena saya memiliki ini sekarang, itu tidak akan pernah terjadi lagi. ;-) Sesuatu seperti ini:
0 12 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chmod %a %n" {} \; |/bin/bzip2 -c > /tmp/restore_chmod.$(/bin/date +%w).sh.bz2
0 13 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chown %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_chown.$(/bin/date +%w).sh.bz2
Perintah yang tepat (gabungan) lebih seperti:
Perhatikan bahwa perawatan tambahan mungkin diperlukan untuk memperhitungkan tanda kurung dalam nama file (di bawah lokal, misalnya) dan bahwa chown dapat secara diam-diam mengeset bit setuid dan setgid yang ditetapkan oleh chmod. Dalam kasus terakhir, yang akan merusak, katakanlah, / bin / su dan / usr / bin / sudo, Anda mungkin perlu menukar urutan klausa exec di atas.
sumber
Setelah memulihkan sudo atau memilih mode pemulihan saat boot
Dimungkinkan untuk memulihkan keseluruhan sistem menggunakan debsums yang memverifikasi integritas dan izin file.
dari halaman manual:
atau terbatas pada jalur tertentu mis
/usr
::atau terbatas pada beberapa set path misalnya:
/sbin /etc /var
sumber
chmod a-x /bin/ping
dandebsums -c
tidak akan melaporkan file itu.Selalu perhatikan apa yang Anda jalankan sebagai sudo.
Utas ini menjelaskan bahwa Anda dapat secara manual mengatur kembali beberapa izin, dan skrip di sana membantu dengan ini, tapi tetap saja ini pekerjaan besar. Alih-alih mengikuti tip dalam tapak untuk menyimpan paket (tanda) yang diinstal dan menginstal ulang OS, dan menerapkan tanda paket yang disimpan untuk mendapatkan kembali aplikasi Anda.
sumber
Sejauh yang saya tahu, hanya paket-paket Sistem V dan RPM yang menawarkan perintah untuk memperbaiki izin file. Pada Sistem V (Solaris) itu adalah pkgchk, dengan RPM adalah rpm - setperma.
Sayangnya, sepertinya tidak ada perintah seperti itu untuk paket Debian / Ubuntu - tapi saya mungkin salah di sini.
Tetapi bahkan dengan bantuan perintah-perintah ini, itu bukanlah tugas sepele untuk mengembalikan sistem Anda ke keadaan waras, dan dengan memperbaikinya, Anda dapat dengan mudah menyebabkan kerusakan baru pada sistem Anda - jika Anda tidak hati-hati.
Selain Joseph berkata, kamu bukan yang pertama, dan kamu tidak akan menjadi yang terakhir untuk memasukkan perintah seperti itu. Tapi idenya sendiri, untuk mengubah izin file ke 777 pada sistem Unix, adalah indikasi kuat bahwa Anda tidak terlalu berpengalaman dengan sistem semacam ini. Yang terbaik yang dapat Anda lakukan dalam situasi ini adalah mencadangkan apa yang Anda perlukan lagi (direktori home, file konfigurasi, file mail?), Dan coba instalasi baru.
Dan Anda harus sangat, sangat berhati-hati, ketika mengembalikan file cadangan yang rusak.
Semoga berhasil!
PS: Saya hanya ingin tahu masalah apa yang ingin diselesaikan?
sumber
Wow, kamu membunuhnya. Sudah mati! Coba masuk dan gunakan mesin sebagai root (karena Anda mengaktifkannya), lalu ubah keanggotaan grup root ke pengguna. Ini mungkin atau mungkin tidak berhasil karena saya belum pernah mencobanya sebelumnya tetapi patut dicoba.
sumber
Anda tidak dapat membatalkan
chmod
operasi; setidaknya tidak dalam arti memutar kembali ke pengaturan sebelumnya, yang merupakan situasi yang dibutuhkan. Bisa dibilang, Anda dapat membatalkanchmod
operasi, dengan memasukkanchmod
setiap file dan direktori kembali ke mode aslinya –– tetapi semuanya tidak sama; menentukan mode asli itu sulit (seperti yang dibahas dalam jawaban lain).sumber