"Chown -R root /" come sono avvitato io?

Ho eseguito accidentalmente il command chown -R root / durante il tentativo di modificare le autorizzazioni nella cartella pubblica delle mie app rotaie. Credevo che questo cambiasse le autorizzazioni a tutte le mie cartelle nella / directory. Quindi la mia domanda è, quanto sia pericoloso, in realtà la domanda migliore sarebbe, è comunque ansible annullare questo?

Un modo per attenuare il problema qui (non risolvere, ma aiutare a uscire da un buco) è quello di eseguire un process su un sistema simile per raccogliere le properties; appropriate per i file. Apprezzo che le probabilità di una corrispondenza esatta sono un po 'sottili, ma se entrambe le o / s sono allo stesso livello con pacchetti simili installati si potrebbe essere fortunati.

Una volta che hai raccolto le autorizzazioni di file in un file, puoi eseguire un process sul proprio sistema per leggere i file e le properties; di perms / ownership dal bene e sostituirle sul tuo. Ho un paio di piccole applicazioni apprese in casa su Linux che fanno proprio questo.

Per esempio

 777*0*0*S*16*1334559119*1334532895*1361208513*/usr/lib32/*libgomp.so.1 644*0*0*F*67370*1359536382*1359374461*1359717843*/usr/lib32/*librt.a 644*0*0*F*59044*1334559119*1334532931*1355405098*/usr/lib32/*libgomp.so.1.0.0 644*0*0*F*1238*1359536382*1359374461*1359717843*/usr/lib32/*libBrokenLocale.a 777*0*0*S*17*1359536382*1359374460*1361208513*/usr/lib32/*libdl.so 644*0*0*F*905712*1334559116*1334533011*1355405098*/usr/lib32/*libstdc++.so.6.0.16 777*0*0*S*15*1333306601*1323929512*1361208513*/usr/lib32/*libbz2.so.1.0 777*0*0*S*24*1359536382*1359374460*1361208513*/usr/lib32/*libnss_files.so 644*0*0*F*1128*1359536382*1359374462*1359717843*/usr/lib32/*crt1.o 

RWX * UID * GID * altra roba * directory * nome file

Prima di tutto, interrompere il command se è ancora in esecuzione!

Ora tutto apparterrà alla radice e questo è abbastanza problematico.

Dovresti provare a ripristinare le informazioni dal tuo ultimo backup.

È anche importnte non riavviare il sistema prima di controllare tutte le applicazioni in esecuzione e l'utente che li avvia al momento dell'avvio. Se lo fai, alcuni di essi non possono iniziare correttamente a causa di problemi di autorizzazioni.

In bocca al lupo.

Molto e non proprio.

"Molto" nel senso che se il command è stato effettivamente passato, la tua sicurezza è avvitata. Ora non sapete quali routes hanno i proprietari e chi dovrebbe essere autorizzato a fare ciò.

"Non proprio" nel senso – sei sicuro che tu fossi radice quando lo hai fatto e ha fatto il command per andare fino alla fine? Se l'hai annullata, non appena lo hai visto, potresti essere fortunato e la riparazione potrebbe essere bassa. Se non fossi root, questo command non whereva essere in grado di farlo, a less che non hai fatto qualcosa di simile a sudo ...

Non esiste un unico rimedio a questo. Se si dispone di un backup, è ansible ripristinarlo. Potrebbe essere necessario controllare le properties; del backup e applicarle. Se si utilizza un checker rootkit (say rkhunter), potrebbe avere un elenco delle properties; più basilari e forse è in grado di risolvere il problema. (Non molto probabile).

Alless su Fedora, il command RPM ha le opzioni --setperms e --setugids , utilizzando quelle che è ansible correggere la maggior parte dei file di properties; del sistema come rpm --setugids -a . Per (un po ') risolvere i file per each utente, è ansible fare per ciascun chown -R user /home/user . Ci saranno probabilmente degli avanzi che non sono stati fissati da quanto sopra, in particolare se si dispone di una sorta di server (web, ftp, altri), questi dovranno essere gestiti uno per uno.

Probabilmente altre distribuzioni hanno meccanismi simili. O fare un aggiornamento completo (ad esempio, installare tutto nuovo, come se fosse in qualche modo danneggiato. OK, era in qualche modo danneggiato.)

[Sì, questa è ancora una volta Unix 'un modo piuttosto crudele di insegnare agli utenti ignari di considerare con attenzione each command prima di premere INVIO e di utilizzare la radice con poca dimensione . Prendi in considerazione te stesso.]

Se la tua messa OSX utilizza una funzionalità di ripristino in Utility per dischi per risolvere questo problema. Se usi un distro di linux, sono abbastanza certo che dovrai ridisegnare manualmente tutte le autorizzazioni. In entrambi i casi, schivare le mani e non farlo di nuovo

Purtroppo non conosco alcun modo per "annullarla", ma probabilmente si può lasciare i file di sistema come properties; di root e ripristinare tutti i file del tuo $ HOME da essere di properties; (e fare lo stesso per tutti gli utenti della sistema). A quel punto puoi fissare le autorizzazioni e / o il proprietario su each file non nella tua directory $ HOME che ne ha bisogno in quanto si verifica. Sì, questo è un dolore, ma non credo che ci sia una soluzione facile. Questo è quello che vorrei comunque.

Direi che sei abbastanza "avvitato" come tu dici. Il modo migliore (e più efficace) è quello di reinstallare e ripristinare elementi critici dai tuoi backup. Spiacenti non è una situazione che generalmente ha una soluzione veloce con un finale felice. In bocca al lupo!