Accidentalmente ejecuté el siguiente comando como root,
chown mike -Rf / backups
el punto es que agregué un espacio entre / y las copias de seguridad, mi error, detuve el comando después de 1-2 segundos, ¿cómo puedo recuperarme de esto? Tengo problemas con DirectAdmin ahora mismo por ejemplo al acceder me sale el error:
Unable to determine Usertype
user.conf needs to be repaired
http://help.directadmin.com/item.php?id=456
O dejé de recibir correos electrónicos, ni siquiera sé qué más está mal en este momento...
Respuesta1
No hay forma de volver a cambiar esto sin volver a su copia de seguridad, ya que el sistema no realiza un seguimiento de la revisión de la propiedad.
Lo mejor es hacer una copia de seguridad ahora, para poder revertir cualquier cambio adicional.
Reinstalar los paquetes en su sistema probablemente resuelva la mayoría de los problemas de propiedad. En Debian/Ubuntu haría:
apt-get install --reinstall package
en un rpm
sistema basado en algo así como rpm -Uvh --force package.rpm
para cualquier cosa que esté dando problemas. Si configura correctamente un paquete no sobrescribirá los archivos de configuración que haya cambiado.
Si tiene otro sistema similar o una copia de seguridad, puede recuperar la información de propiedad original y aplicarla a su sistema. Primero haga una lista de los archivos y directorios que le interesa utilizar:
find / -user mike
y use esa lista para encontrar archivos que no sean propiedad de Mike en el sistema de respaldo o similar.
Respuesta2
Eso depende del sistema operativo que esté ejecutando.
Si es Solaris 10 y anterior, puede solucionar todos los problemas del propietario que afectan a los archivos y directorios que pertenecen a un paquete con el siguiente comando:
pkgchk -f
Con Solaris 11, eso sería:
pkg fix
Creo que AIX tiene un comando de reparación de paquetes similar.
Si ejecuta un sistema operativo basado en rpm (Red Hat, Fedora y similares), debería poder ejecutar
rpm -aV
para detectar los archivos y directorios con discrepancias con la base de datos del paquete. Luego podrías solucionarlos ejecutando:
rpm --setugids <package-name>
Pero necesitarás pasar cada nombre de paquete afectado. Alternativamente, puedes simplemente ejecutar:
for package in $(rpm -qa); do rpm --setugids $package; done
Si está ejecutando un sistema operativo basado en Debian, me temo que la propiedad del archivo no se almacena en la base de datos del paquete, por lo que deberá usar su copia de seguridad, si la hay, como referencia para restaurar la propiedad, o buscar un sistema similar para el mismo. .
Respuesta3
Cometí exactamente el mismo error, por un error tipográfico al final de la frase.
chown -R root:root /folder/subfolder /
No me di cuenta del espacio antes de la barra :(
Con suerte, preguntando aquí, finalmente resolví el problema, tomando propietario y grupo de otro servidor Debian instalado. En ese servidor, hice:
find / -not -path '/proc/*' -not -path '/var/www/*' -not -path '/home/*' ! \( -name root -o -group root \) | xargs stat --format 'chown %U:%G %n' | sort -k 2,3 > chown_owner_and_group.sh
chmod +X chown_owner_and_group.sh
Luego, copio el archivo al servidor donde necesito restaurar el propietario y el grupo de archivos, e hice lo siguiente:
./chown_owner_and_group.sh
Respuesta4
Me temo que la única solución que tienes es comparar con otra instalación de la misma distribución y resetear los propietarios correctamente.