Ver también:
¿Por qué es "chmod -R 777 /" destructivo?
Cambié los permisos de archivo de forma recursiva en el directorio raíz /
ejecutando sudo chmod -R / 777
, y después de eso mi sistema no se iniciará (recibo muchos errores de "permiso denegado").
Por favor ayuda.
permissions
ubuntu-10.04
boot
Marcin
fuente
fuente
Respuestas:
Estás viendo una causa perdida. Guarde los datos que necesita y reinstale el sistema operativo.
fuente
/etc
,/var/www
los contenidos del servidor web y las bases de datos. Tome otro disco duro, actívelo como su primario e instálelo. Eso conserva su otra unidad como respaldo hasta que pueda transferirla.Sé que dpkg almacena los permisos en las bases de datos y encontré el siguiente script de google que puede ayudar.
Editar: De hecho, eché un vistazo rápido al script y parece que le falta un poco de magia que va de PERMS a MODE, por ejemplo, dpkg -c da, por ejemplo, "-rw-r - r--" pero quieres 0644, estoy en el trabajo en este momento, así que no estoy seguro de tener el tiempo para hacer la conversión en este momento, pero puedo volver más tarde si nadie más ha intervenido para agregar ese bit.
Hay un script aquí que es parece interesante
fuente
Es posible regresar de una situación tan desordenada , sin reinstalar el sistema. Bueno, más exactamente ejecutando un nuevo sistema nuevo, ya sea desde una memoria USB o en una caja Virutal (más o menos) si tiene un sistema de arranque dual.
Volví a ejecutar el mismo tipo de problema (algún error en un script que estaba escribiendo) y lo resolví, pero debes pedir la ayuda de algún experto. ¡Sé muy cauteloso!
Primero, mi situación fue más fácil de resolver porque tenía un sistema de arranque dual (ubuntu y mi antigua instalación de fedora), pero ejecutar el sistema para una llave USB (o tal vez un CD / DVD) debería hacer lo mismo.
MPOINT = / mount / ubuntu
Primero monté mis sistemas de archivos de esta manera (no olvides crear los puntos de montaje): mount / dev / ubuntu / root $ MPOINT mount / dev / ubuntu / home $ MPOINT / home
Luego ejecuté el siguiente comando (mi problema era solo en unos pocos directorios críticos) para copiar los permisos del sistema en ejecución al desordenado (de hecho, en mi caso, instalé un sistema ubuntu en Virtual Box bajo fedora y obtuve los permisos allí):
find / etc / usr / bin -exec stat --format "chmod% a $ {MPOINT}% n" {} \; > /tmp/restoreperms.sh
Y luego ejecuté el script restoreperms.sh.
Pude volver a arrancar en ubuntu.
El contenido de restoreperms.sh será algo así como:
No lo probé, pero también debe funcionar para propietarios y grupos de propietarios. Algo como:
find / etc / usr / bin -exec stat --format 'chown% U:% G $ {MPOINT}% n' {} \; > /tmp/restoreperms.sh^
Por supuesto, debe tener cuidado aquí, que el UID y el GID son iguales en ambos sistemas, pero para los usuarios y grupos relacionados con el sistema, esto no debería ser un problema.
Rk:
Una cosa importante para esto es mantener un disco de instalación sincronizado con la versión que está utilizando, o al menos trabajar con la versión actual de ubuntu. Ahora, tengo estos comandos en un cronjob, ejecutándome todos los días (podrían ser semanas) para mantener esa información. Hará la solución más fácil la próxima vez pero, por supuesto, como tengo esto ahora, nunca volverá a suceder. ;-) Algo como esto:
EDITAR: para admitir enlaces, el comando combinado es:
/usr/bin/find / -exec /usr/bin/stat --format="[ ! -L {} ] && /bin/chmod %a %n" {}
fuente
Modifiqué el script de arriba y se ve así:
fuente
De acuerdo con blueben, solo reinstalar puede ser más rápido que analizar qué archivo / directorio necesita qué permiso. Pero si la reinstalación no es una opción, aquí hay una idea:
find / | xargs stat -c 'chmod %a "'%n'"' > /tmp/chmod.sh
chmod.sh
a la computadora con los permisos incorrectoschmod +x /tmp/chmod.sh && /bin/bash /tmp/chmod.sh
fuente
ERRATUM a mi publicación publicada como usuario user100740: para admitir enlaces, el comando combinado es:
fuente
Si aún puedes lanzar
/usr/sbin/synaptic
, a menudo es reparable.Ordene los paquetes por estado (paquetes instalados en la parte superior), seleccione todos los paquetes instalados, haga clic derecho y seleccione reinstalar. Luego aplique, eso le pedirá
dpkg
que vuelva a extraer todos los archivos para esos paquetes. (Perderá las modificaciones locales (pero no los cambios en el archivo de configuración)).Sin embargo, es posible que no lo arregle todo.
La otra cosa es que si entra
/var/cache
, puede llamardpkg -x <package name> /
por cada paquete instalado y luego llamardpkg --reconfigure -a
. Además, si está utilizando Ubuntu, puede hacer una actualización dist que a menudo corrige muchos errores (suponiendo que aún no esté en la última versión). En general, cuando trato de corregir un error como este, intento estas soluciones simples y si no solo hacen que funcione de nuevo, entonces es hora de reinstalarlo.fuente
arranque desde el CD en vivo. luego inicie shell, luego sudo -s. Luego chmod 777 / *, luego chmod 600 / etc / passwd. kernel entrará en pánico si init falla, lo que sucederá si los scripts / lib / init no son ejecutables. arranque en modo de usuario único, para Lilo Linux 1, y ejecute el script user102453 anterior. Esto hace que el arranque del sistema se solicite. Todavía necesito que X funcione.
fuente
Establecer el permiso de / a 755 funcionó para mí.
Entonces verifique primero con
Los permisos deben ser "drwxr-xr-x" (755).
fuente