Saya tidak sengaja mengubah /var
pemilik / grup menjadi nama pengguna saya dan kemudian mengubahnya kembali ke root, tetapi tidak semua pemilik /var
folder menjadi root, jadi apakah ada cara untuk mengubah kembali pemilik / grup file / folder ke keadaan default? Atau setidaknya file / folder yang dibuat oleh paket?
permissions
chown
sepehr
sumber
sumber
chown
perintah? dan akan ditutup.Jawaban:
Mirip dengan salah satu jawaban di atas, jika Anda memiliki salinan direktori dengan izin yang benar bernama "var" di direktori lokal Anda, Anda dapat menggunakan dua perintah berikut untuk mengembalikan izin ke direktori / var.
sumber
Jawaban paling sederhana (dan mungkin paling benar) adalah "Anda tidak bisa", tetapi jika Anda ingin mencoba, inilah skrip bash yang akan memperbaiki izin file di bawah / var milik paket .deb.
CATATAN:
Script bekerja dengan menghasilkan daftar paket yang diinstal yang memiliki file dalam var, mengunduh paket-paket itu, dan kemudian menggunakan
dpkg-deb -c
untuk mencari tahu apa yang seharusnya menjadi izin.Bagian tersulit adalah menulis fungsi untuk mengubah string izin (seperti yang ditampilkan oleh
ls -l
atautar v
) ke mode numerik oktal, termasuk katering untuk setuid, setgid, dan bit lengket .... beberapa hal yang akan mudah ditulis dengan algoritma yang bagus di, katakanlah, perl terlalu banyak kesulitan dalam bash, jadi lebih mudah untuk hanya memaksa saja.Akhirnya, skrip ditulis dalam mode "debug-mode" atau "dry-run". Untuk membuatnya benar-benar mengubah pemilik / grup / perm, komentar-keluar atau hapus dua baris dengan
__EOF__
penanda dokumen di sini.Script, tentu saja, dapat dengan mudah diadaptasi untuk memperbaiki perm-file yang dikemas dalam direktori lain, atau di semua direktori.
Script ini akan jauh lebih mudah jika file $ packagename.list di
/var/lib/dpkg/info
memiliki perm, group, dan oktal perms serta nama file ... tetapi tidak.sumber
dpkg -S /var
. Juga, setelah menerapkan skrip ini, orang perlu memeriksadpkg-statoverride --list '/var/*'
.dpkg -S
lambat (itulah sebabnya saya menulisdlocate
). Poin bagus tentangdpkg-statoverride
, .... dan format output sempurna.Anda bisa.
Instal distribusi yang sama ke mesin lain atau VM, dan gunakan
chmod --refer
untuk menyinkronkan izin/var
sumber
Jawaban sederhananya adalah "kamu tidak bisa".
Tetapi .... jika Anda memiliki sistem file seperti JFS yang memiliki log, Anda dapat memulihkannya dengan alat-alatnya. Beberapa manajer paket memungkinkan Anda menginstal ulang paketnya dan mungkin dengan cara ini Anda dapat memulihkan pemilik file Anda.
Cara lain tetapi lebih rumit adalah Anda dapat me-mount / var di perangkat lain dan daripada program akan membuat ulang direktori yang hilang.
sumber