Accidentalmente ejecuté el siguiente comando en el directorio etc.
sudo chmod -R 700 /etc
Sé que he hecho algo muy mal. Mi terminal ahora imprime:
I have no name!@ubuntu: /$
¿Cómo puedo revertir mi directorio etc a su estado anterior?
Intenté cambiar los permisos pero ahora falla. Además, sería muy útil si alguien puede explicar qué fue lo que realmente salió mal cuando ejecuté ese comando, etc. Solo fueron permisos de archivos. Entonces, ¿por qué todo el sistema parece completamente explotado? ¿Por qué no funcionan las contraseñas de inicio de sesión ahora? Sé que hay un archivo en el directorio etc. que tiene que ver con los usuarios. Pero, ¿cómo los permisos cambiantes pusieron en peligro todo? Algunos detalles técnicos sobre esto serían muy útiles.
ls -laR
) de otro sistema en ejecución. ¿Qué versión es la tuya? Puede cambiar los directorios a 755 y los archivos a 644, pero algunos deben tener modos diferentes (como / etc / shadow, por ejemplo).sudo
, debe leerlo en su cabeza como "Me estoy otorgando el máximo poder sobre mi sistema sin red de seguridad, ¿estoy seguro de saber lo que estoy haciendo? ¿Estoy seguro de que escribí lo que quise decir?" antes de presionar regresar.find /etc -type d ! -perm 755 -exec ls -ld {} \;
yfind etc -type f ! -perm -644 -exec ls -l {} \;
buscar directorios y archivos con modos no estándar. En Debian son solo 2 directorios y 39 archivosRespuestas:
Una cosa salió mal: el uso de
sudo
con ese comando. El-R
interruptor le dicechmod
a establecer recursivamente los permisos para ese directorio, que es, en todos los casos, una acción no recomendada (deberíamos llamarla herejía) si no sabe qué está haciendo (una vez que esto me sucedió, yo no emitió el comando pero lo hizo una GUI defectuosa y mi sistema se conectó).GNU / Linux es muy sensible a los permisos de archivos, ya que se creó teniendo en cuenta la estabilidad y la seguridad . Lo mismo se aplica a la mayoría de los programas que se ejecutan en GNU / Linux (es decir,
apache2
elimina los privilegios y usos de la raízwww-data
, o un usuario similar, y su700
permiso no le permitiría leer / escribir sus propios archivos).Como ya mencionó, las contraseñas de inicio de sesión se almacenan en un archivo
/etc/passwd
y solo la raíz (supongo que no cambió eso) puede leerlo, pero la solicitud de inicio de sesión (o inicio de sesión GUI) utiliza una cuenta sin privilegios, por lo tanto, no puede leer el archivo.Igual que se dijo anteriormente, Linux es muy sensible a los permisos de archivos. Algunos programas incluso comprueban los permisos de sus archivos de configuración y, si no se esperan, no se ejecutarán en absoluto.
Si usa una distribución basada en RPM, esto se puede hacer usando el
rpm --setperms
comando, sería revertir dolorosamente uno por uno los paquetes, en un sistema similar a Debianapt-get --reinstall install
es su amigo. Puede haber otras soluciones disponibles, pero necesitaría un sistema de trabajo para ello.fuente
Veamos, lo que ha hecho es establecer permisos en todo el directorio / etc como lectura / escritura / ejecución permitida solo para el propietario del archivo / directorio, denegado para todos los demás. Si está confundido por los permisos de archivo, puede leer más en Wikipedia: permisos UNIX tradicionales .
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 ayuda rápida de banda para poder usar el sistema, para arreglarlo correctamente (reinstalando todos los paquetes con contenido dentro de / etc, como se indicó anteriormente), puede hacer lo siguiente:
Con esas dos líneas, establecerá permisos liberales en todos los directorios / etc, con lectura / escritura permitidas para el propietario y el grupo, y lectura permitida para todos los demás. La razón de los dos chmod es establecer el bit de ejecución solo en directorios. Algunos procesos se quejarán o fallarán, incluso cualquier ejecutable dentro de / etc, pero debería poder realizar la reinstalación que describí anteriormente.
Tenga en cuenta que hasta que recupere los permisos originales, su sistema estará, al menos, en un estado inseguro.
fuente
/etc/sudoers
es otro./etc
no deben ser legibles para el mundo nunca! Restaurar desde copias de seguridad, es por eso que las tiene (o es por eso que la gente le ha estado instando a hacer copias de seguridad).700 ha eliminado el acceso a muchos archivos para grupos y usuarios mundiales (por ejemplo, los archivos ahora tienen
rwx------
permisos). Por ejemplo, todos los usuarios deben poder leer/etc/passwd
. Con su configuración, solo la raíz puede leer ahora/etc/passwd
. Muchas cosas se romperán si rompe los permisos de los archivos de/etc/
manera impredecible.Podría intentar y reconstruir los permisos (suponiendo que aún pueda cambiar a root) en función de un servidor que funcione, pero eso es propenso a errores.
Sugiero restaurar
/etc/
desde una copia de seguridad si tiene una (asegurándose de que la restauración restablezca los permisos o, si su solución de copia de seguridad lo admite, restaure solo los permisos).fuente