Estoy usando Ubuntu 18.04.
Cambié el nombre de la /etc
carpeta a apache2
. Ese fue mi mayor error
Ahora no puedo cambiarle el nombre porque necesito usarlo sudo
, pero cuando lo intento aparece el error
sudo: unknown uid 1000
¿Como puedo solucionar este problema? No tengo un sistema en vivo desde el cual arrancar, y en modo de recuperación se abre el terminal raíz pero luego se cierra diciendo cannot open password database
.
/mnt
, renombre, reinicie.Respuestas:
Una forma fácil de solucionar problemas como este es a menudo arrancar desde un sistema en vivo, montar la partición raíz
/mnt
y luego cambiar el nombre del archivo.Si no tiene un sistema en vivo o un medio para hacer uno, o no tiene acceso físico al sistema, pero puede reiniciar y obtener el menú GRUB, puede usar el editor GRUB para obtener un shell raíz y cambiar el nombre el archivo.
Reinicie o apague, encienda y, si normalmente no ve el menú de GRUB en el arranque, presione Shifto Escpara acceder al menú de GRUB.
Mueva el cursor hacia abajo a Opciones avanzadas para Ubuntu y presione enter, luego presione epara editar las opciones de arranque (solo una vez; los cambios aquí no serán permanentes, por lo que no tenemos que limpiar después).
Verá una pantalla que se parece a esto 1 :
Mueva el cursor hacia abajo a la línea que comienza con
linux
y luego mueva el cursor al final de esa línea, o en cualquier lugar entre los parámetros de arranque del núcleo allí. Asegúrese de estar en la línea correcta y escriba cuidadosamente aquí, ya que el sistema puede fallar al arrancar sin estar/etc
en su lugar.Agregue el texto
init=/bin/bash
y presione F10para arrancar.Esto iniciará el sistema con un shell Bash como init. Obtendrá un shell raíz y el sistema de archivos se montará solo lectura. 2 Para que el sistema de archivos se pueda escribir, ingrese el comando
Ahora puede cambiar el nombre
/etc
(es posible que deseels
primero)Ahora puede reiniciar o completar el inicio normalmente desde aquí haciendo que el shell raíz se reemplace con el sistema de inicio normal 3 :
Probé este procedimiento en Ubuntu MATE 18.04.
1 Muchas gracias a Kulfy por obtener una captura de pantalla de buena calidad del editor GRUB de VirtualBox.
2 Aunque PATH no se puede establecer desde los archivos de configuración
/etc
en este escenario, Bash establecerá automáticamente uno .3 Si
exec systemd
no funciona para usted,exec /sbin/init
debería hacer el truco. Si no,readlink -e /sbin/init
debe dar la ruta a cualquier programa init que se esté ejecutando, que luego puedeexec
con su ruta completa. Si no puede proceder de esta manera, simplemente ingresereboot
.fuente
F10
solo aparezcan algunas líneas y se detiene en la pantalla en blanco. ¿Puedes sugerirme algo?Si tiene un USB en vivo, debería poder iniciarlo y montar su sistema de archivos existente, luego cambiarle el nombre
/etc
desde allí. Aquí hay un tutorial sobre cómo crear un USB en vivo en caso de que lo necesite.Una vez iniciado en el USB en vivo (si usa una unidad Ubuntu 18.04), seleccione "Probar Ubuntu sin instalar" y esencialmente le dará una instancia completa de una instalación de Ubuntu que no persistirá después del apagado. Una vez arrancado, tiene algunas opciones:
Forma de línea de comando
Abre una terminal y corre
lsblk
. Busque el volumen que sería la unidad de su instalación original y observe qué número es (/ dev / sd #)Luego, cree un punto de montaje para la unidad con
mkdir -p /mnt/directory
, luego monte la unidad consudo mount /dev/sd# /mnt/directory
. Navegue al directorio concd /mnt/directory
y ahora debería estar en el directorio raíz de su instalación, pero ahora con unsudo
comando de trabajo . ejecutarsudo mv apache2 etc
y reiniciar en su sistema operativo hipotéticamente funcionando.Forma gráfica
Abra la utilidad de discos buscando discos. Seleccione el volumen que se parece a su unidad de instalación y móntelo. Abra el administrador de archivos y seleccione el volumen montado, haga clic derecho en su
/apache2
carpeta y cámbiele el nombre/etc
, luego reinicie.fuente
sudo nautilus
desde la terminal. (Ubuntu usa "nautilus" como administrador de archivos de la misma manera que Windows usa "explorer".)sudo -H nautilus
para evitar que root se convierta en el propietario de los archivos de configuración$HOME
, lo que podría hacer que sean inaccesibles para los programas que se ejecutan como un usuario normal. Probablemente esté al tanto de esto, pero lo menciono para otros lectores.Haga un USB de arranque como se muestra aquí.
Arranque desde USB presionando la tecla como se muestra aquí.
Descubra su partición del sistema de archivos ejecutando
gparted
. Supongamos que es sdxy.Ejecutar en terminal
sudo mount /dev/sdxy /mnt
Ejecutar en terminal
sudo mv /mnt/apache2 /mnt/etc
Verifique su sistema de archivos en / mnt para el cambio de nombre.
Ejecutar en terminal
sudo reboot
Cuando se le solicite, retire el USB y presione Entrar
fuente
mount
programa es muy estricto y siempre debe ejecutarse como root; La única excepción a esto es cuando el sistema de archivos está enfstab
y tiene lauser
opción. El programaudisksctl
permite a los usuarios normales montar dispositivos, por ejemploudisksctl mount -b /dev/sda1
(crea un punto de montaje adecuado/media/$USER/
). No he probado el usoudisksctl
de un sistema vivo, pero en un sistema vivo uno es siempre un usuario privilegiado capaz de corrersudo
sin contraseña para que no haya necesidad de los servicios públicos, comoudisksctl
los que son de otra manera tan útil