"Chown -R root /" ¿cómo estoy jodido?

8

Accidentalmente ejecuté el comando chown -R root / al intentar cambiar los permisos a la carpeta pública de mi aplicación rails. Creí que esto cambió los permisos a todas mis carpetas en el directorio /. Entonces mi pregunta es, ¿qué tan peligroso es esto? De hecho, la mejor pregunta sería, ¿hay alguna forma de deshacer esto?

usuario1938700
fuente
3
Esto no se puede deshacer automáticamente, y sí, tiene un impacto significativo en su sistema (incluidos, entre otros, los distintos directorios principales). Espero que tengas a mano una copia de seguridad reciente. Buena suerte.
Frédéric Hamidi
Hay programas que verifican su sistema para los permisos apropiados y la propiedad del archivo. Creo que Tripwire es o fue uno de los primeros. Si no tiene múltiples usuarios, puede salvar la situación simplemente obteniendo un informe y / o una solución de dicha herramienta.
minopret
Lea también los buenos consejos a continuación que equivalen a "no reaccione de ninguna manera que lo empeore" y "no asuma lo peor". O recuerde estos pasos importantes de solución de problemas generales con la versión de broma: Operador de emergencia: "No se asuste, ¿está seguro de que su amigo está muerto?" Persona que llama : BANG "Sí, lamentablemente, está muerto".
minopret
En la mayoría de los casos, en un sistema normal, debería poder distinguir del grupo de un archivo quién debería ser el propietario. Por findlo tanto, todos los archivos que son propiedad de la raíz donde el grupo no es apropiado, y los unen al usuario que coincida con el grupo. Registre las fallas y trate con ellas de manera individual.
agf
¿Has ejecutado ese comando como root? (Espero que no ...)
Axel

Respuestas:

7

Una forma de mitigar el problema aquí (no resolver, pero ayudarlo a salir de un agujero) es ejecutar un proceso en un sistema similar para recopilar las propiedades apropiadas para los archivos. Aprecio que las posibilidades de una coincidencia exacta sean algo escasas, pero si ambas o / s están al mismo nivel con paquetes similares instalados, es posible que tenga suerte.

Una vez que haya recopilado los permisos de archivo en un archivo, puede ejecutar un proceso en su propio sistema para leer los archivos y permisos / propiedades del archivo bueno y reemplazarlos en el suyo. Tengo un par de pequeñas aplicaciones locales en Linux que hacen exactamente esto.

P.ej

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 * otras cosas * directorio * nombre de archivo

FreudianSlip
fuente
5

En primer lugar, detenga el comando si aún se está ejecutando.

Ahora todo pertenecerá a root y eso es bastante problemático.

Debe intentar restaurar la información de su última copia de seguridad.

También es importante no reiniciar el sistema antes de verificar todas las aplicaciones que se ejecutan y que el usuario las inicie en el arranque. Si lo hace, algunos de ellos pueden no iniciarse correctamente debido a problemas de permisos.

Buena suerte.

fedorqui
fuente
3

Muy y no del todo.

"Muy" en el sentido de que si el comando se ha cumplido, su seguridad está jodida. Ahora no sabe qué caminos tienen qué propietarios y a quién se le debe permitir hacer qué.

"No del todo" en el sentido: ¿estás seguro de que eras root cuando lo hiciste y el comando pasó hasta el final? Si lo cancelaste, tan pronto como lo viste, entonces podrías tener suerte y la reparación podría ser baja. Si no fue root, este comando no debería haber sido capaz de hacerlo, a menos que haya hecho algo así sudo ....

No hay un remedio único para esto. Si tiene una copia de seguridad, puede restaurarla. Es posible que deba verificar las propiedades en la copia de seguridad y aplicarlas. Si ha estado utilizando un verificador de rootkit (por ejemplo, rkhunter), es posible que tenga una lista de las propiedades más básicas y posiblemente pueda solucionarlo. (No es muy probable).

Carlspring
fuente
2

Al menos en Fedora, el comando RPM tiene las opciones --setpermsy --setugids, al usarlas, puede reparar la mayoría de los archivos propiedad del sistema rpm --setugids -a. Para (un poco) arreglar los archivos para cada usuario, puede hacer para cada uno chown -R user /home/user. Probablemente habrá restos que no hayan sido arreglados por lo anterior, particularmente si tiene algún tipo de servidor (web, ftp, otros), esos deberán ser manejados uno por uno.

Probablemente otras distribuciones tienen mecanismos similares. O realice una actualización completa (es decir, instale todo de nuevo, como si estuviera dañado de alguna manera. OK, de alguna manera estaba dañado).

[Sí, esta es una vez más la forma bastante cruel de Unix de enseñar a los usuarios desprevenidos a considerar cada comando cuidadosamente antes de presionar ENTER, y usar la raíz con moderación . Considérate enseñado.]

vonbrand
fuente
setuidy los setgidpermisos deben establecerse a mano. rpmNo los restaurará.
jnas
1

Si usa Apple OSX, proporciona una función de restauración dentro de las Utilidades de disco para solucionar este mismo problema. Si está utilizando una distribución de Linux, estoy bastante seguro de que tendrá que rehacer todos los permisos manualmente. En cualquier caso, golpea tus manos y no lo vuelvas a hacer.

Mrshll187
fuente
Probablemente sea poco probable que pueda recuperarse completamente de esto en Linux. Incluso si puede hacer que el sistema funcione, probablemente se haya perdido algo que podría volver a morderlo más tarde, ya sea como inestabilidad o vulnerabilidad de seguridad. Yo diría que probablemente sea necesario una restauración desde el enfoque de copia de seguridad o reconstrucción.
Chris Kuehl
0

Desafortunadamente, no conozco ninguna forma de "deshacerlo", pero probablemente pueda dejar los archivos del sistema como propiedad de root y restaurar todos los archivos en su $ HOME para que sean de su propiedad (y haga lo mismo para todos los usuarios de sistema). En ese momento, puede corregir los permisos y / o el propietario de cada archivo que no esté en su directorio $ HOME que lo necesite a medida que surja. Sí, esto es un dolor, pero no creo que haya una solución fácil. Eso es lo que haría de todos modos.

Freedom_Ben
fuente
0

Yo diría que estás bastante "jodido" como dices. La mejor manera (y la más eficiente) es reinstalar y restaurar elementos críticos de sus buenas copias de seguridad. Lo sentimos, esta no es una situación que generalmente tiene una solución rápida con un final feliz. ¡Buena suerte!

mdpc
fuente