Cada vez que intento emitir su
me sale esto:
$ su
Password:
su: Sorry
No hace falta decir que estoy ingresando la contraseña de administrador correcta con la que funciona sudo
. Lo que quiero es no tener que ingresar sudo
cada vez.
En MacOS X, el usuario root está deshabilitado de manera predeterminada, por su
lo tanto , no funcionará. Como otros han dicho, es mejor usarlo sudo
.
Si se debe permitir que el usuario root, consulte la nota técnica de Apple: Activación y utilizando el usuario "root" en Mac OS X .
sudo su
todavía funciona, por lo que no está realmente deshabilitado. Simplemente no tiene contraseña.sudo su
, ¿cuál es el punto de inhabilitaciónsu
entonces?su
", es evitar el inicio de sesión de root . Al no permitir el inicio de sesión comoroot
, evita un montón de posibles problemas de seguridad. No permitir que alguien puedasudo
hacerlosu
es un poco tonto. Básicamente,su
solo cambia el ID de usuario actual y ejecuta un comando (un shell, si no se especifica). Si el ID de usuario ya es 0 (raíz), como cuando se ejecuta consudo
, no hay nada que pueda hacer, por lo que solo ejecuta el shell. Puede obtener un efecto similar haciendosudo bash
.Tienes dos opciones. Lo primero es usar
sudo -s
: esto le dará acceso de superusuario, pero seguirá siendo 'usted mismo' (por así decirlo), por lo que cosas como este~
seguirán siendo su directorio de inicio. Alternativamente, puede usarsudo su
, lo que le proporciona un shell como el usuario raíz real de su Mac.fuente
sudo
para ejecutar comandos que requieren privilegios elevados, no para cambiar a un shell raíz y trabajar desde eso.sudo
ethos al extremo. Pero lo que sea: semántica. No use shells de raíz en OS X.Por ejemplo, si necesita mover archivos o usar git usando la CLI, entonces, en ese caso, la mejor solución será usar el
sudo -s
comando. Después de ese comando, no tiene que seguir ingresando la contraseña una y otra vez.fuente
Creo que no puedes hacer esto como un usuario "normal" ...
Si hay otra cuenta de usuario con derechos de administrador, debe usar esta.
fuente
Solución moderna:
sudo -u
Para ejecutar como otro uso, use
sudo -u
.Por ejemplo, para ejecutar un editor de texto como nano :
... e ingrese su contraseña de usuario administrador de Mac cuando se le solicite. En este momento, es el usuario administrador de Mac quien está invocando
sudo
, no elsomeuser
usuario, por lo que no debe ingresar lasomeuser
contraseña.sudo
significa ejecutar algo usando privilegios de superusuario.-u
significa "ejecutar un comando especificado como este usuario especificado".someuser
debe reemplazarse con su nombre de usuario deseado.Para simular un inicio de sesión inicial como un usuario en particular, incluida la ejecución de sus scripts de inicio, use
-I
.Esto ejecuta la
nano
aplicación como usuario,someuser
pero solo después de haber ejecutado los scripts de inicio para ese usuario.Si optamos por no especificar un comando o aplicación para ejecutar, obtenemos un shell interactivo que se ejecuta como ese usuario.
Vieja escuela:
sudo su someuser
Otro enfoque utiliza el
su
comando en combinación con elsudo
. Elsu
comando significa "cambiar de usuario".O, para incluir la ejecución de los scripts de inicio del usuario, agregue el guión.
root
usuarioEl
root
usuario en los sistemas operativos relacionados con Unix tiene un poder absoluto para hacer cualquier cosa.Apple ha optado por desactivar la
root
cuenta en macOS, para evitar vulnerabilidades de seguridad y para evitar que te dispares en el pie. Apple creó la idea de las cuentas de usuario Administrador que tienen muchos poderes, más poderes que una cuenta de usuario Estándar , pero no poder absoluto como el queroot
tiene. Vea esta nota de soporte de Apple para discusión.Si es necesario, puede habilitar al
root
usuario en macOS y luego cambiar a ese usuario. Esto está fuertemente desaconsejado. Seguiría este camino solo como un último recurso desesperado.Para una discusión sobre esto dentro del contexto del
postgres
usuario que ejecuta el sistema de base de datos Postgres en macOS, vea esta Pregunta en el sitio hermano, DBA Stack Exchange .fuente