Respuestas:
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.
sudo chown -R user:user /
, es probable que el sistema esté tan mal conectado que no pueda restaurar desde una copia de seguridad.
chown
descrito, es probable que no pueda hacer nada antes de instalar todo el sistema desde cero; el sistema ni siquiera tiene una root
cuenta y sudo
no funcionará. Probablemente valga la pena intentar arrancar en un shell de usuario único, pero no espere que funcione.
sudo
o incluso su
continuará funcionando cuando todos sus archivos relevantes son propiedad de otra persona user
es un asunto diferente (probablemente no porque, entre otras cosas, el bit SUID en el exe se habrá ido).
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/foo
encuentra debajo es propiedad del usuario foo
y que cada archivo de spool de correo /var/mail
es 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.
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
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.
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.