Risposte:
In breve: no.
Dovrai ripristinare da un backup. (Alcuni strumenti di backup potrebbero avere opzioni per ripristinare solo le autorizzazioni, altri possono elencare i file di backup con le loro autorizzazioni e puoi usarli per riparare il tuo sistema.)
Se non si dispone di un backup, è necessario correggere tutto manualmente.
sudo chown -R user:user /
, è probabile che il sistema sia così gravemente nascosto che non è possibile ripristinare da un backup.
chown
descrizione, è probabile che non sarai in grado di fare nulla prima di installare l'intero sistema da zero; il sistema non ha nemmeno un root
account e sudo
non funzionerà. Probabilmente vale la pena provare ad avviare una shell per singolo utente, ma non aspettarti che funzioni.
sudo
o anche su
continuerà a funzionare quando tutti i suoi file rilevanti sono di proprietà user
è una questione diversa (probabilmente non perché tra le altre cose il bit SUID sull'exe sparirà).
Solo se conosci la proprietà dell'utente e del gruppo di ogni file e directory nella tua /
directory.
Anche allora, hai già bloccato la proprietà dei file di sistema critici che devono essere di proprietà di root, incluso il sudo
comando. Probabilmente avresti bisogno di montare il disco rigido su un altro sistema e tieni presente che l'altro sistema probabilmente non avrà gli stessi UID e mappature GID di quello che hai appena bloccato.
Se possibile, copia dell'intero disco rigido, quindi reinstalla il sistema operativo. Una volta fatto, puoi provare a copiare i file sul sistema appena cancellato e ripristinarne le proprietà. Probabilmente puoi presumere (anche se non in modo affidabile al 100%) che tutto ciò che /home/foo
è sotto è di proprietà dell'utente foo
e che ogni file di spool di posta sotto /var/mail
sia di proprietà dell'utente appropriato (se hai e-mail sul sistema). Probabilmente puoi andare via senza ripristinare la maggior parte dei file che non sono sotto /home
, a seconda di ciò che hai fatto con il sistema.
E poi inizia a coltivare l'abitudine di ricontrollare qualsiasi comando esegui sudo
prima di colpire Enter.
Se la distribuzione è basata su RPM, è possibile ripristinare SOLO i file installati dai pacchetti rpm.
Per ripristinare tutte le autorizzazioni del pacchetto:
rpm --setperms -a
Per ripristinare tutto il proprietario del pacchetto (utente / gruppo):
rpm --setugids -a
Se -a non viene eseguito, è possibile eseguire un ciclo bash:
Per le autorizzazioni:
for x in $(rpm -qa); do rpm --setperms $x; done
Per il proprietario:
for x in $(rpm -qa); do rpm --setugids $x; done
Estratto da: http://www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html
È possibile memorizzare le versioni correnti e quindi analizzarle per ripristinarle utilizzando l'opzione -v.
chown -R nobody:nobody -v /tmp/some_file > /tmp/chown.log
cat /tmp/chown.log
I contenuti sarebbero:
changed ownership of `/tmp/some_file' from me:users to nobody:nobody
Utilizzando il tuo linguaggio di scripting preferito e le espressioni regolari, puoi eseguire il doloroso processo di ripristinarli (se necessario).
Consiglio vivamente di non fare un abito ricorsivo su / mentre esponerai / etc / shadow o qualsiasi altro file importante.
sudo chown -R user:user ..
potrebbe avere lo stesso effetto di quello menzionato qui se ci si trova ad un livello inferiore alla radice del file system. Non tentare qualcosa di simile.