chown permessi modificati in modo ricorsivo


34

Ho eseguito il comando chown in una directory:

chown -R user:user {.,}*

Il {.,}*viene utilizzato con mve cpper includere entrambi i file nascosti e quotate. Ora questo comando è andato a buon fine e ha cambiato quei due file nella mia directory, ma ho dovuto interromperlo per fermarlo da quando è andato avanti. Ora temo che sia andato e abbia cambiato le autorizzazioni su altri file e cartelle, dal momento che non è terminato.


Risposte:


46

Usando {.,}*, hai incluso sia ./e ../. Insieme -Rall'opzione, la tua chownchiamata stava per sfogliare l'intero filesystem (e altri, eventualmente montati), passando ../. Con altri comandi, questo piccolo errore può essere abbastanza mortale, ma credimi, non sei il primo e non sarai l'ultimo ...

Poiché questa operazione è piuttosto pesante, la tua chownchiamata è rimasta sospesa un po ', poiché aveva molti file da elaborare. Ti suggerirei di tornare alla directory in cui hai effettuato la chiamata e di tornare progressivamente /per vedere quali modifiche sono state apportate. Potresti essere in grado di applicare una soluzione rapida facendo:

chown root:root /* # Set ownership to root for all directories in /.
chown you:yourgroup /home/you -R # Take your home back.

Su Ubuntu, la /homedirectory viene assegnata al primo utente (admin / sudo) registrato sul sistema. Se sei l'unico utente, potresti voler fare:

chown you:yourgroup /home -R

Tuttavia, è sufficiente un semplice chmod 755on /home, anche se appartiene a root.

Anche dare una rapida occhiata direttamente /(inclusi i permessi di root stessi ls -ld /) sarebbe un buon punto di partenza. Ti suggerisco di assicurarti che /appartenga a root, con un set di autorizzazioni 755.

Se hai usato chownper impostare una proprietà molto specifica (un utente diverso da te o root, un gruppo raro, ...), potresti voler utilizzare findper cercare i chownfile -ed.

find / -user {username}
find / -group {groupname}

Sfortunatamente, non esiste nulla di simile undoa ciò che hai fatto. Linux non tiene naturalmente traccia di queste operazioni "casuali".

Per ulteriori informazioni su ciò che stavi cercando di ottenere, dai un'occhiata a questa domanda SuperUser .


La mia directory principale sembra essere buona. È di proprietà di root.
nicoX,

Devi aver ucciso chownpuntualmente allora, ma continua a controllare, passando dalla directory in cui sei stato eseguito chown, al root.
John WH Smith,

Il problema qui è che ho usato il flag -R? E come puoi cambiare proprietario in un solo comando sia per i file nascosti che per quelli elencati.
nicoX,

2
Vedi il link che ho aggiunto alla fine della mia risposta. Il -Rproblema era il problema, dal momento che ci sei passato anche in modo ricorsivo .., che alla fine ti ha portato a modificare l'intero albero dei file da /deep/directory/where/you/chowneda /.
John WH Smith,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.