chown permisos modificados recursivamente

34

Ejecuté el comando chown en un directorio:

chown -R user:user {.,}*

Se {.,}*utiliza con mve cppara incluir archivos ocultos y listados. Ahora, este comando pasó y cambió esos dos archivos en mi directorio, pero tuve que romperlo para detenerlo ya que continuó. Ahora me temo que se fue y cambió los permisos en otros archivos y carpetas, ya que no terminó.

nicoX
fuente

Respuestas:

46

Al usar {.,}*, incluiste ambos ./y ../. Junto con la -Ropción, su chownllamada estaba a punto de explorar todo su sistema de archivos (y otros, posiblemente montados), pasando ../. Con otros comandos, este pequeño error puede ser bastante mortal, pero créeme, no eres el primero y no serás el último ...

Como esta operación es bastante pesada, su chownllamada se suspendió un tiempo, ya que tenía muchos archivos para procesar. Le sugiero que regrese al directorio donde realizó la llamada y que regrese progresivamente /para ver qué cambios se hicieron. Es posible que pueda aplicar una solución rápida haciendo:

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

En Ubuntu, el /homedirectorio se entrega al primer usuario (admin / sudo) registrado en el sistema. Si es el único usuario, es posible que desee hacer:

chown you:yourgroup /home -R

Sin embargo, un simple chmod 755encendido /homees suficiente, incluso si pertenece a la raíz.

Echar un vistazo rápido directamente a /(incluidos los propios permisos de raíz ls -ld /) también sería un buen lugar para comenzar. Le sugiero que se asegure de que /pertenece a la raíz, con un conjunto de 755 permisos.

Si solía chownestablecer una propiedad muy específica (un usuario que no sea usted o root, un grupo raro, ...), puede usar findpara buscar chownarchivos ed.

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

Desafortunadamente, no existe lo undoque hiciste. Linux no hace un seguimiento natural de estas operaciones "casuales".

Para obtener más información sobre lo que estaba tratando de lograr, eche un vistazo a esta pregunta de Superusuario .

John WH Smith
fuente
Mi directorio raíz parece ser bueno. Es propiedad de root.
nicoX
Debes haber matado chowna tiempo entonces, pero sigue revisando, yendo desde el directorio que ejecutaste chownhasta la raíz.
John WH Smith
¿El problema aquí fue que usé la bandera -R? ¿Y cómo puede cambiar el propietario en un comando para los archivos ocultos y listados?
nicoX
2
Vea el enlace que agregué al final de mi respuesta. Ese -Rera el problema, ya que también lo hiciste recursivamente .., lo que finalmente te llevó a alterar todo el árbol de archivos de /deep/directory/where/you/chowneda /.
John WH Smith