Solución 1:
Usuario de redhat:
chown 0:0 /bin/rpm && rpm -qa | xargs rpm --setugids
Usuario de Debian/Ubuntu:
chown 0:0 /bin/* /usr/bin/*
chown daemon:daemon /usr/bin/at
chown 0:utmp /usr/bin/screen
chmod 02755 /usr/bin/screen
chmod u+s /bin/fusermount /bin/mount /bin/su /bin/mount
chmod u+s /usr/bin/sudo /usr/bin/passwd
screen
Mientras la pantalla se está ejecutando, haga esto al menos dos veces:
dpkg --get-selections | awk '{ if ($2 == "install") print $1}' \
| xargs apt-get install --reinstall --
Paga muy mucha atención a la salida porque si se queja de que algo tiene los permisos incorrectos, debe corregirlo en otra ventana de la pantalla.
Curso acelerado en pantalla:
Control+A - command key
Control+A a - emit a control+A
Control+A n - next "screen"
Control+A c - create "screen"
Usuario de Solaris:
Estás jodido.
pkgchk -R / -f -a
restablecerá todos los permisos, pero la configuración seguirá estando rota. Use una copia de seguridad u otra máquina solaris para buscar secuencias de comandos y archivos setuid/setgid y arréglelos manualmente.
LO IMPORTANTE DE LAS RESPALDAS
Es que puedes recuperarlos, no que te los llevas.
Otras personas te han aconsejado que hagas copias de seguridad, pero quiero agregar que deberías probarlas. Si está utilizando un sistema unixish, no hay ningún motivo que no puede volcar los archivos en otra máquina periódicamente y asegurarse de que todo funcione.
Solución 2:
Casi todo en /bin/ debe ser propiedad de root:root, por lo que si ejecuta lo siguiente, puede corregir la propiedad de esos archivos:
chown root:root -R /bin/
También es posible que desee asegurarse de que el bit setuid esté configurado correctamente en /bin/su, que puede solucionar con lo siguiente:
chmod 4755 /bin/su
Solución 3:
Tenga en cuenta que es posible que también se hayan eliminado las banderas set-uid de los binarios afectados; esta es una característica de seguridad de chown. Verifique con algún otro sistema qué binarios tienen las banderas set-uid o set-gid y asegúrese de configurarlos también en sus binarios.
Solución 4:
Iba a explicar los detalles del uso de RPM para restablecer los permisos de los archivos, pero encontré un sitio con mucha más información. También menciona que Ubuntu/Debian (por lo tanto, .debs en general) no lo admite.
Pero, en general, la opción que buscas sería la siguiente:
rpm --setugids {packagename}
Solución 5:
Si se tratara de un sistema Debian, sería capaz de reinstalar todo.