¿Cómo ejecuto el comando sudo desde una cuenta estándar?

Por lo que he leído, es un buen enfoque de seguridad tener dos cuentas, una de administrador y otra estándar.

Estoy tratando de ejecutar el siguiente comando en la terminal de mi cuenta estándar

sudo mv /System/Library/CoreServices/Search.bundle /System/Library/CoreServices/Search.bundle.bak killall SystemUIServer

Solicita una contraseña, momento en el que el proceso falla porque el usuario actual "no está en el archivo sudoers".

¿Me está pidiendo la contraseña de mi cuenta de administrador o la contraseña de root? ¿Tengo una cuenta/contraseña raíz si no he configurado una explícitamente? ¿Cómo elevo temporalmente mi acceso para ejecutar el comando sin habilitar necesariamente la raíz?

Si el autor de la pregunta ha perdido el control de esta cuenta, simplemente registre una nueva cuenta y márquela para que el moderador ayude a fusionar las cuentas si la parte de fusión automática del centro de ayuda no funciona.

Respuestas (3)

El sistema solicita la contraseña de su cuenta y luego verifica si puede ejecutar sudo según el contenido de /etc/sudoers. De manera predeterminada, solo los administradores (que tienen el ticket de opción en Preferencias) pueden hacer esto.

En caso de que desee ejecutar comandos de shell con sudo sin tener que cambiar de usuario todo el tiempo, tiene varias opciones:

  • Úselo ssh <any-admin-user>@localhostpara iniciar sesión como usuario administrador y ejecutar sudo luego
  • Agregue su usuario que no es administrador /etc/sudoersiniciando sesión como usuario administrador, ejecutando sudo visudoen Terminal, duplicando la %admin ALL=(ALL) ALLlínea y reemplazando %admincon su nombre de usuario. Esto le permitirá usar sudo en Terminal sin darle acceso de administrador completo. Usar visudoen lugar de editar el archivo directamente garantizará que se verifique la corrección sintáctica del archivo al guardarlo (un error en /etc/sudoerspodría bloquearlo completamente de su sistema)
ssh es un poco exagerado para esto, y requiere que realmente tengas sshd ejecutándose. su <any-admin-user>seria mejor.

Respondí una pregunta similar aquí.


Parece que podría usar el comando SU para cambiar a otro usuario en la Terminal. Una vez que haya cambiado al usuario administrador, puede usar los comandos sudo junto con la contraseña de la cuenta de administrador.

Por ejemplo, cuando estoy en una de las Mac de mis usuarios finales y necesito ejecutar algo con privilegios elevados (por ejemplo, chown) sin cerrar la sesión e ingresar a la cuenta de administrador (ladmin), usaría algo como esto (en negrita):

Mr-Rabbits-Mac:~ notadminuser$ su ladmin

Esto le pedirá la contraseña de la cuenta de ladmin, una vez ingresada, verá un símbolo del sistema de bash. Desde aquí puedo ejecutar cualquier comando sudo deseado, ingresando la contraseña de ladmin según sea necesario...

bash-3.2$ sudo chown usuario2 /alguna/carpeta

Esto ejecutará el comando chown usando el usuario ladmin ahora conectado, solicitando la contraseña de la cuenta ladmin. Una vez que haya terminado, puede escribir exit para volver a la indicación del usuario que inició sesión.

Captura de pantalla de un proceso similar, solo usando sudo para ejecutar el comando ls (solo por ejemplo).ingrese la descripción de la imagen aquí

Esta es la respuesta correcta a esta pregunta. ¡Estoy sorprendido de por qué no ha sido votado a favor!

Abra Terminal e inicie sesión en su cuenta de administrador. Debe tener un aspecto como este:

MyComputer:~ MyStandardAccount$ login MyAdminAccountName
Password: <enter password here> --The text you type will be invisible so no one can see the password
MyComputer:~ MyAdminAccount$ sudo mv /System/Library/CoreServices/Search.bundle /System/Library/CoreServices/Search.bundle.bak killall SystemUIServer
Password: <enter password here> --Text will be invisible again
MyComputer:~ MyAdminAccount$ logout
MyComputer:~ MyStandardAccount$