¿Cómo revertir el comando chown?


17

Si corro:

sudo chown -R user:user /

¿Puedo revertirlo a lo que era antes de ejecutarlo?


1
Solo como una advertencia para otros: el siguiente comando sudo chown -R user:user ..podría tener el mismo efecto que el mencionado aquí si está un nivel por debajo de la raíz del sistema de archivos. No intentes algo como esto.
passerby51

Respuestas:


22

En resumen: no.

Deberá restaurar desde una copia de seguridad. (Algunas herramientas de copia de seguridad pueden tener opciones para restaurar solo los permisos, otras pueden enumerar los archivos respaldados con sus permisos y puede usarlos para reparar su sistema).

Si no tiene una copia de seguridad, deberá arreglar todo eso manualmente.


Después sudo chown -R user:user /, es probable que el sistema esté tan mal conectado que no pueda restaurar desde una copia de seguridad.
Keith Thompson el

1
Si no puede recuperar las partes importantes de sus datos de usuario en este escenario desde su copia de seguridad, su "copia de seguridad" realmente no es una. Si no puede recuperar todo el sistema operativo, aún debería poder reinstalar la base y luego restaurar desde la copia de seguridad. Es muy probable que necesite un CD en vivo o arranque de red en este caso, pero si su estrategia de copia de seguridad no puede recuperarse de esto, no es lo suficientemente bueno.
Mat

Mi comentario anterior probablemente no estaba claro. Un sistema en funcionamiento puede restaurarse utilizando el sistema mismo. Una vez que haya hecho lo chowndescrito, es probable que no pueda hacer nada antes de instalar todo el sistema desde cero; el sistema ni siquiera tiene una rootcuenta y sudono funcionará. Probablemente valga la pena intentar arrancar en un shell de usuario único, pero no espere que funcione.
Keith Thompson el

1
La cuenta raíz no se ha ido (sigue siendo UID 0); simplemente ya no posee ningún archivo, pero de todos modos la raíz omite las verificaciones de permisos normales. Si sudoo incluso sucontinuará funcionando cuando todos sus archivos relevantes son propiedad de otra persona useres un asunto diferente (probablemente no porque, entre otras cosas, el bit SUID en el exe se habrá ido).
jw013

6

Solo si conoce la propiedad del usuario y el grupo de cada archivo y directorio bajo su / directorio.

Incluso entonces, ya ha bloqueado la propiedad de los archivos críticos del sistema que deben ser propiedad de root, incluido el sudo comando. Probablemente necesite montar el disco duro en otro sistema, y ​​tenga en cuenta que el otro sistema probablemente no tendrá los mismos mapeos UID y GID que el que acaba de bloquear.

Haga una copia de todo el disco duro si puede, luego reinstale su sistema operativo. Una vez que haya hecho eso, puede intentar copiar los archivos nuevamente al sistema recién borrado y restaurar sus propiedades. Probablemente pueda suponer (aunque no de manera 100% confiable) que todo lo que se /home/fooencuentra debajo es propiedad del usuario fooy que cada archivo de spool de correo /var/mailes propiedad del usuario apropiado (si tiene un correo electrónico en el sistema). Es probable que pueda escapar sin restaurar la mayoría de los archivos que no están debajo /home, dependiendo de lo que haya hecho con el sistema.

Y luego comience a cultivar el hábito de verificar dos veces cualquier comando que ejecute sudo antes de golpear Enter.


6

Si su distribución está basada en RPM, puede restaurar SOLAMENTE los archivos instalados por paquetes rpm.

Para restaurar todos los permisos del paquete:

rpm --setperms -a

Para restaurar todo el propietario del paquete (usuario / grupo):

rpm --setugids -a

Si -a no se ejecuta, puede ejecutar un bucle bash:

Para permisos:

for x in $(rpm -qa); do rpm --setperms $x; done

Para el propietario:

for x in $(rpm -qa); do rpm --setugids $x; done

Extraído de: http://www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html


1

Puede almacenar las versiones actuales y luego analizarlas para revertirlas utilizando la opción -v.

chown -R nobody:nobody -v /tmp/some_file > /tmp/chown.log
cat /tmp/chown.log

Los contenidos serían:

changed ownership of `/tmp/some_file' from me:users to nobody:nobody

Usando su lenguaje de script favorito y expresiones regulares, puede ejecutar el doloroso proceso de revertirlos (si es necesario).

Recomiendo encarecidamente no hacer una presentación recursiva en / como expondrá / etc / shadow o cualquier otro archivo importante.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.