Lihat Juga:
Mengapa “chmod -R 777 /” destruktif?
Saya mengubah izin file secara rekursif pada direktori root /
dengan mengeksekusi sudo chmod -R / 777
, dan setelah itu sistem saya tidak bisa boot (saya mendapatkan banyak kesalahan "izin ditolak").
Tolong bantu.
permissions
ubuntu-10.04
boot
Marcin
sumber
sumber
Jawaban:
Anda melihat tujuan yang hilang. Simpan data yang Anda butuhkan, dan instal ulang sistem operasi.
sumber
/etc
,/var/www
konten server web , dan basis data. Raih hard drive lain, aktifkan sebagai drive utama dan instal. Itu mempertahankan drive Anda yang lain sebagai cadangan hingga Anda dapat mentransfernya.Saya tahu dpkg menyimpan izin di basis data dan saya menemukan skrip google berikut yang dapat membantu.
Sunting: Saya sebenarnya melihat sekilas skrip dan sepertinya ada sedikit keajaiban yang beralih dari PERMS ke MODE misalnya dpkg -c memberi contoh "-rw-r - r--" tetapi Anda ingin 0644, saya sedang bekerja sekarang jadi saya tidak yakin saya punya waktu untuk melakukan konversi pada saat ini tetapi saya dapat kembali lagi nanti jika tidak ada orang lain yang ikut menambahkan bit itu.
Ada skrip di sini yang terlihat menarik
sumber
Hal ini dimungkinkan untuk kembali dari situasi yang berantakan , tanpa menginstal ulang sistem. Nah, lebih tepatnya menjalankan sistem baru baik dari kunci USB atau dalam Kotak Virutal (atau lebih) jika Anda memiliki sistem dual boot.
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 instalasi fedora lama saya), tetapi menjalankan sistem untuk kunci USB (atau mungkin CD / DVD) harus melakukan hal yang sama.
MPOINT = / mount / ubuntu
Pertama saya memasang sistem file saya seperti ini (jangan lupa untuk membuat poin mount): mount / dev / ubuntu / root $ MPOINT mount / dev / ubuntu / home $ MPOINT / home
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 di bawah fedora dan mendapat izin di sana):
temukan / etc / usr / bin -exec stat --format "chmod% a $ {MPOINT}% n" {} \; > /tmp/restoreperms.sh
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:
temukan / etc / usr / bin -exec stat --format 'chown% U:% G $ {MPOINT}% n' {} \; > /tmp/restoreperms.sh^
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.
Rk:
Yang penting untuk ini adalah menjaga agar disk instalasi tetap disinkronkan dengan versi yang Anda gunakan, atau setidaknya berfungsi dengan versi ubuntu saat ini. 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:
EDIT: untuk mendukung tautan, perintah gabungan adalah:
/usr/bin/find / -exec /usr/bin/stat --format="[ ! -L {} ] && /bin/chmod %a %n" {}
sumber
Saya memodifikasi skrip dari atas dan terlihat seperti ini:
sumber
Setuju dengan blueben, hanya menginstal ulang mungkin lebih cepat daripada menganalisis file / direktori mana yang memerlukan izin. Tetapi jika menginstal ulang bukanlah suatu pilihan, inilah ide:
find / | xargs stat -c 'chmod %a "'%n'"' > /tmp/chmod.sh
chmod.sh
ke komputer dengan izin yang salahchmod +x /tmp/chmod.sh && /bin/bash /tmp/chmod.sh
sumber
ERRATUM ke posting saya diposkan sebagai pengguna user100740: untuk mendukung tautan, perintah gabungannya adalah:
sumber
Jika Anda masih bisa meluncurkan
/usr/sbin/synaptic
, itu sering diperbaiki.Urutkan paket berdasarkan status (paket yang diinstal di bagian atas), pilih semua paket yang diinstal, klik kanan dan pilih instal ulang. Kemudian terapkan, itu akan meminta
dpkg
untuk mengekstraksi ulang semua file untuk paket-paket itu. (Anda akan kehilangan modifikasi lokal apa pun (tetapi tidak mengonfigurasi perubahan file).)Mungkin tidak semuanya diperbaiki.
Hal lainnya adalah jika Anda masuk
/var/cache
, Anda dapat menelepondpkg -x <package name> /
untuk setiap paket yang diinstal, lalu menelepondpkg --reconfigure -a
. Juga, jika Anda menggunakan Ubuntu, Anda dapat melakukan upgrade dist yang sering memperbaiki banyak kesalahan (dengan asumsi Anda belum pada rilis terbaru). Secara umum ketika saya mencoba untuk memperbaiki kesalahan seperti ini, saya mencoba perbaikan sederhana ini dan jika mereka tidak membuatnya berfungsi lagi, maka sekarang saatnya untuk menginstal ulang.sumber
boot dari live CD. lalu mulai shell, lalu sudo -s. Kemudian chmod 777 / *, lalu chmod 600 / etc / passwd. kernel akan panik jika init gagal yang akan terjadi jika skrip / lib / init tidak dapat dieksekusi. boot ke mode pengguna tunggal, untuk Lilo Linux 1, dan jalankan skrip user102453 di atas. Ini membuat sistem sytem boot ke prompt. Masih perlu menjalankan X.
sumber
Pengaturan izin / ke 755 bekerja untuk saya.
Jadi, periksa dulu dengan
Izin harus "drwxr-xr-x" (755).
sumber