GNU/Linux >> Linux Esercitazione >  >> Linux

Chmod / 777 impostato in modo errato. Problemi?

Stavo cercando di eseguire chmod -R 777 ./ ma ho finito per digitare chmod -R 777 / e imposta 777 su tutta la mia macchina. Cosa può andare storto? Come posso risolverlo?

Risposta accettata:

I problemi? Sì, un sacco. Può essere riparato? Sicuro. Più veloce della reinstallazione? Probabilmente no.

Il mio consiglio è di reinstallare. Conserva un backup del sistema esistente e ripristina l'elenco dei pacchetti e il contenuto dei file in /etc e /var . Per /usr/local , probabilmente puoi ripristinare le autorizzazioni manualmente. Per /home e /srv , dovrai ripristinare le autorizzazioni dai backup.

Se si tratta di un sistema con più utenti locali, tieni presente che rendere alcuni file leggibili da tutto il mondo ha rivelato alcune cose che avrebbero dovuto rimanere riservate.

  • Il tuo elenco di password è ora compromesso:gli utenti locali hanno avuto accesso all'elenco di password con hash e potrebbero tentare di forzarli. Informa i tuoi utenti di questo.
  • Tutti i dati degli utenti privati ​​(chiavi ssh, password memorizzate, e-mail, qualsiasi altra cosa gli utenti potrebbero considerare confidenziale) sono stati esposti a tutti gli utenti locali. Informa i tuoi utenti di questo.

Se vuoi davvero provare a riparare (più un esercizio di apprendimento che un percorso di ripristino pratico), prima ripristina i permessi di alcuni file. Nota che mentre la maggior parte dei file ora è troppo aperta, ad alcuni mancano i bit setuid necessari. Ecco i passaggi che dovresti eseguire prima di ogni altra cosa. Nota che questo non è un elenco esaustivo, solo un tentativo di rendere il sistema a malapena funzionante.

chmod -R go-w /
chmod 440 /etc/sudoers
chmod 640 /etc/shadow /etc/gshadow
chmod 600 /etc/ssh/*_key /etc/ssh*key   # whichever matches
chmod 710 /etc/ssl/private /etc/cups/ssl
chmod 1777 /tmp /var/tmp /var/lock
chmod 4755 /bin/su /usr/bin/passwd /usr/bin/sudo /usr/bin/sudoedit
chmod 2755 /var/mail /var/spool/mail

Quindi dovrai ripristinare tutte le autorizzazioni ovunque. Per i file in /usr , puoi reinstallare i pacchetti con uno dei seguenti comandi, a seconda della tua distribuzione:

  • Se stai usando Debian, Ubuntu o un'altra distribuzione basata su APT, puoi eseguire apt-get --reinstall install
  • Se stai usando Arch Linux, puoi eseguire pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacman , supponendo che tu sia in un Live CD e che la tua installazione di Arch sia montata su /newarch .

Per i file in /etc e /var , che non funzionerà, molti di loro rimarranno così come sono:dovrai replicare i permessi su un'installazione funzionante. Per i file in /srv e /home , dovrai comunque ripristinare dai backup. Come puoi vedere, potresti anche reinstallare.

Correlati:come uccidere tutti i processi di proprietà di `user` su Centos 7??
Linux
  1. Configura CORS su file cloud

  2. Come impostare i file zip delle password con il comando in tutti i sistemi operativi?

  3. File .o vs file .a

  4. Chmod 777 in una cartella e tutti i contenuti

  5. Come impostare i file aperti max nginx?

Come modificare ricorsivamente le autorizzazioni dei file in Linux

Cosa significa chmod 777

Dropbox configurato per un server cloud Linux

trova i file con gli ACL impostati

È sicuro chmod 777 tutto?

Perché chmod -R 777 / è distruttivo?