Una cosa salió mal:el uso de sudo
con ese comando. El -R
interruptor le dice a chmod
para establecer recursivamente los permisos a ese directorio, que es, en todos los casos, una acción no recomendada (debemos llamarlo:herejía) si no sabes lo que estás haciendo (una vez que me pasó esto, no lo sabía emitió el comando, pero una GUI defectuosa lo hizo y mi sistema se conectó).
Solo eran permisos de archivo. Entonces, ¿por qué todo el sistema parece completamente volado?
GNU/Linux es muy sensible a los permisos de archivos, ya que fue construido con estabilidad y seguridad. en mente. Lo mismo se aplica a la mayoría de los programas que se ejecutan en GNU/Linux (es decir, apache2
elimina los privilegios de root y usa www-data
, o usuario similar, y su 700
el permiso no le permitiría leer/escribir sus propios archivos).
¿Por qué ahora no funcionan las contraseñas de inicio de sesión?
Como ya mencionaste, las contraseñas de inicio de sesión se almacenan en un archivo en /etc/passwd
y solo la raíz (supongo que no cambió eso) puede leerlo, pero el indicador de inicio de sesión (o el inicio de sesión de GUI) usa una cuenta sin privilegios, por lo tanto, no puede leer el archivo.
Pero, ¿cómo arriesgó todo cambiar los permisos?
Igual que se dijo anteriormente, Linux es muy sensible a los permisos de archivos. Algunos programas incluso verifican los permisos de sus archivos de configuración y, si no se esperan, no se ejecutarán en absoluto.
¿Cómo puedo revertir mi directorio etc a su estado anterior?
Si usa una distribución basada en RPM, puede hacerlo usando el rpm --setperms
comando, sería doloroso revertir uno por uno los paquetes, en un sistema similar a Debian apt-get --reinstall install
es tu amigo. Es posible que haya otras soluciones disponibles, pero necesitarían un sistema que funcione.
Veamos, lo que ha hecho es establecer permisos en todo el directorio /etc como lectura/escritura/ejecución permitidos solo para el propietario del archivo/directorio, denegados para todos los demás. Si está confundido por los permisos de archivo, puede leer más en Wikipedia:Permisos tradicionales de UNIX.
La razón por la que ha explotado su sistema es porque muchos procesos ya no pueden leer su configuración, ya que no pueden acceder a /etc. No será fácil recuperar todo el directorio /etc a su estado anterior. Cómo hacerlo dependerá de su distribución, pero básicamente significa reinstalar cada paquete que contenga cualquier archivo dentro de /etc.
Como una curita rápida para poder usar el sistema, con el fin de arreglarlo correctamente (reinstalando todos los paquetes con contenido dentro de /etc, como se indicó anteriormente), podría hacer:
# sudo find /etc -type d -exec chmod 775 '{}' \;
# sudo find /etc -type f -exec chmod 664 '{}' \;
Con esas dos líneas, establecerá permisos liberales en todo el directorio /etc, con lectura/escritura permitida para el propietario y el grupo, y lectura permitida para todos los demás. El motivo de los dos chmod es establecer el bit de ejecución solo en dirs. Algunos procesos se quejarán o fallarán aún así, incluido cualquier ejecutable dentro de /etc, pero debería poder hacer la reinstalación que describí anteriormente.
Tenga en cuenta que hasta que recupere los permisos originales, su sistema estará, como mínimo, en un estado inseguro.