5 votos

¿Cómo llegar a la carpeta /etc desde el cd /Macintosh/ HD?

Utilizo Monterey MacOS v12.3.

¿Sabes cómo puedo encontrar el /etc de la carpeta cd /Macintosh/ HD ?

Corrompí mi sudoers y quiero modificarlo desde el modo monopuesto, pero no soy capaz de llegar a la ruta. He probado lo siguiente buscando /etc .

 cd /Macintosh/ HD/System/Volumes/Data
 cd /Macintosh/ HD/System/private

He leído este tema, pero no había ninguna pista de cómo llegar a él: ¿Qué es /Sistema/Volúmenes/Datos?

A continuación se muestra el texto extraído de la convocatoria actualmente cerrada pregunta preguntó en Stack Overflow.

Título: He corrompido mi archivo sudoers en MAC - ¿cómo modificar desde el modo de usuario único?

Por error, he corrompido mi sudoers archivo. Lo modifiqué y escribí mal una palabra que corrompió el archivo.

He escrito NOPASSED en lugar de NOPASSWD .

Mientras tanto, ya no puedo editarlo.

Estoy usando un MacBook Pro (16 pulgadas, 2021) con MacOS 12.3.

He reiniciado con el modo de usuario único, y he abierto el Terminal, pero no soy capaz de llegar al directorio para modificar el archivo.

Este registro de abajo es de la Terminal normal de MacOS, no del modo de usuario único.
oahmed@oahmed-mac /etc % ls -l | grep sudo
-r--r-----   1 root wheel      257 26 Feb 02:05 sudo_lecture
-r--r-----   1 root wheel     1573  2 Feb 12:18 sudoers
drwxr-xr-x   2 root wheel       64 26 Feb 02:05 sudoers.d
oahmed@oahmed-mac /etc % more sudoers
sudoers: Permission denied
oahmed@oahmed-mac /etc % sudo vi sudoers
/etc/sudoers:56:34: syntax error
%admin      ALL = (ALL) NOPASSED: ALL
                             ^
Password:
Sorry, user oahmed is not allowed to execute '/usr/bin/vi sudoers' as root on oahmed-mac.

8voto

David Anderson Puntos 2189

Al arrancar en modo de usuario único, se pueden observar los siguientes mensajes.

Para acceder al /etc directorio, lea lo anterior e introduzca los siguientes comandos.

/sbin/mount -P 1
/usr/libexec/init_data_protection
/sbin/mount -P 2

Entrar en ls /etc/sudoers tendrá como resultado lo siguiente.

-sh-3.2# ls /etc/sudoers
/etc/sudoers

Como puede ver, el nombre del volumen que contiene el directorio root es irrelevante. En otras palabras, no es necesario introducir Macintosh\ HD .

7voto

David Anderson Puntos 2189

No es necesario arrancar en modo de usuario único para solucionar el error. Lo que tienes que hacer es cambiar tu ID de usuario a superusuario ( root ). En unix normal, el comando sería su Sin embargo, este comando no funcionará como se espera hasta que se habilite el root usuario. El procedimiento es el siguiente.

Habilitar el root Usuario

Observe que el icono del candado debería aparecer de forma similar a la imagen que se muestra a continuación.

lock icon

A continuación se indican los pasos a seguir.

  1. Seleccione el menú Apple () > Preferencias del sistema y, a continuación, haga clic en Usuarios y grupos (o Cuentas).
  2. Haga clic en el icono del candado y, a continuación, introduzca un nombre y una contraseña de administrador.
  3. Haga clic en Opciones de inicio de sesión.
  4. Haga clic en Unirse (o Editar).
  5. Haga clic en Open Directory Utility.
  6. Haga clic en el icono del candado en la ventana de la Utilidad de Directorios y, a continuación, introduzca un nombre y una contraseña de administrador.
  7. En la barra de menús de la Utilidad de directorios, seleccione Editar > Habilitar usuario root y, a continuación, introduzca la contraseña que desea utilizar para el root usuario.
  8. Salir de Preferencias del Sistema. Para mayor comodidad, deje abierta la ventana de la Utilidad de Directorios.

Arreglar el sudoers Archivo

Proceda con los siguientes pasos.

  1. Vaya a una ventana de la aplicación Terminal e introduzca el comando su . Introduzca el root la contraseña del usuario cuando se le pida.
  2. Una vez que usted es el root usuario, realice la corrección necesaria en el sudoers archivo.
  3. Si está bloqueado, haga clic en el icono de bloqueo de la ventana de la Utilidad de directorios y, a continuación, introduzca un nombre y una contraseña de administrador.
  4. En la barra de menús de la Utilidad de directorios, seleccione Edición > Desactivar usuario root.
  5. Salga de la Utilidad de Directorios.

Referencias

3voto

David Anderson Puntos 2189

Utilizar la recuperación de macOS o un instalador de arranque para macOS

Esta respuesta fue probada usando un instalador de arranque para MacOS 12.0.1 (Build 21A559). También puedes arrancar desde MacOS Recovery.

Aquí asumo que se abrió una ventana de Terminal seleccionando Utiities > Terminal en la barra de menús de Recovery.

En primer lugar, debo señalar que el OP introdujo incorrectamente Macintosh/ HD . En su lugar, el OP debería haber utilizado Macintosh\ HD o "Macintosh HD" .

Ejecute los pasos indicados a continuación.

  1. Introduzca el siguiente comando para invocar un shell Z. El comando chroot cambia el directorio root para que sea el mismo que cuando se arranca en MacOS Monterey. Si prefiere un shell Bash, entonces sustituya bash para zsh .

    Nota: Si desea acceder a cualquier software de terceros instalado, puede optar por añadir /usr/local/bin a la PATH variable.

    chroot "/Volumes/Macintosh HD" zsh
  2. Realice la corrección necesaria en el sudoers archivo. Por ejemplo, el siguiente comando utiliza el nano para editar el sudoers archivo.

    nano /etc/sudoers

    Nota: El usuario GACy20 publicó un comentario recomendando el uso de la visudo comando.

  3. Cuando termine, introduzca el siguiente comando para volver al shell Bash original.

    exit

A continuación se muestra un ejemplo de salida.

-bash-3.2# chroot "/Volumes/Macintosh HD" zsh
root@Mac / # nano /etc/sudoers
root@Mac / # exit

Saving session...shell_session_save:7: read-only file system: /dev/null

...copying shared history...
...saving history...truncating history files...
...completed.
-bash-3.2# 

Referencias

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X