Arreglar un desastre de permisos Ubuntu Linux en el directorio `/`

3

Acabo de pasar la mayor parte del día configurando un servidor Ubuntu 12.10 y realmente lo estaba disfrutando. Fui lo suficientemente estúpido como para hacer:

sudo chmod 666 /*

en lugar del igualmente sospechoso

sudo chmod 666 ./*

No puedo usar ningún programa en el sistema ahora

Todavía no he establecido una contraseña de root, así que ahora realmente deseaba estar en CentOS: '(

¿Hay algo que pueda hacer sin comenzar de nuevo? ¡Gracias por adelantado!

Cobolt
fuente
1
Solo para referencia futura, nunca necesita usar ./*, lo simple *será suficiente y es menos propenso a errores.
terdon
Tener un usuario root no habría ayudado en su situación.
Sepero

Respuestas:

7

Debe arrancar desde un CD en vivo, porque no se puede acceder a todos sus ejecutables en este momento (bit de acceso eliminado en directorios /bin, ...).

Por favor, hazlo:

  1. arrancar desde un cd en vivo
  2. montar su sistema más adelante mnt, no se olvide de añadir montajes adicionales como /usr, /var...
  3. cd /mnt/
  4. for d in * ; do if [ -d ${d} ] ; chmod u+rwx,og+rx-w ${d}; fi
  5. chmod og= root lost+found # more restrictive permissions
  6. reinicie su sistema y beba una cerveza :-)

advertencia: Esto se aplica al directorio raíz /que normalmente consiste solo en subdirectorios y enlaces simbólicos.


fuente
Muchas gracias, lo estoy intentando ahora. ¡Supongo que es una solución tan lógica que realmente no pensé en ello!
Cobolt
2
@Cobolt - de nada :-) Sea feliz y piense en lo que habría pasado si también hubiera agregado el -Rinterruptor a chmod;-)
¡Trabajado como un encanto! Gracias. Creo que es hora de que aprenda las secuencias de comandos bash, php / perl no me hace lo suficientemente sys admin. ¡Gracias de nuevo!
Cobolt