He oído que se le advierte que, con la idea general de privilegio mínimo, similar a Unix, los usuarios deben crear otra cuenta sin sudo privilegio, además de la cuenta integrada con sudo privilegio. En Mac, esto se traduce a: se debe crear una cuenta de personal para el uso diario, además de la cuenta de administrador que viene con el equipo, siendo reservado sólo cuando sea necesario.
Para la concreción, decir bruce
es personal, el que yo uso a diario, y batman
que es un administrador, el que yo uso sólo cuando sea necesario.
Pero, ¿cómo puedo, mientras que el registro en batman
, realizar sudo tareas, en nombre de bruce
, es decir, bruce
's propia ~
y $(whoami)
como si estuviera ingresando como bruce
con privilegio?
Para ilustrar esto, definimos /User/bruce/test.sh
:
#!/usr/bin/env bash
whoami
cd ~ && pwd
ls ~/Library/Preferences/Preferences/
(Sí, he hecho chmod 744 test.sh
) elegí la última línea artificial ilustración propósito de que, normalmente parece, ~/Library/Preferences/Preferences/
no es accesible a los funcionarios (es decir, un non-admin).
Lo que tengo la intención de recibir, bruce
, /Users/bruce
, y el éxito de ls
de salida.
La primera prestar atención es que, de hecho, si abro bruce
's de la terminal, pero login
el bash de batman
(con el fin de obtener sudo privilegio), y ejecutar
sudo /Users/bruce/test.sh
Llego root
, /Users/batman
, y el éxito de ls
de salida de ~/Library/Preferences/Preferences/
, mostrando que la casa es de batman; esto no es de extrañar.
O, un posible duplicado (un) afirma que sudo -i -u bruce
me permite ejecutar comandos como bruce
.
Pero no! Si yo (como arriba) abra bruce
's de la terminal, login
el bash de batman
, y ejecutar
sudo -i -u bruce /Users/bruce/test.sh
Llego bruce
, /Users/bruce
y ls: : Permission denied
.
Sin embargo, otra posible duplicado (b) los estados que sudo -H -u bruce
usa de bruce casa.
Bueno, de nuevo, cuando abro bruce
's de la terminal, login
el bash de batman
, y ejecutar
sudo -H -u bruce bash /Users/bruce/test.sh
Yo también te bruce
, /Users/bruce
y ls: : Permission denied
.
El lector podría pensar que mi petición es razonable; pero sólo quiero saber si es posible otorgar temporalmente sudo privilegio a un personal -- que puede ser conveniente en los tiempos.
Por ejemplo, si esto se puede hacer, cuando estoy haciendo algún corto script que necesito ya no evite $(whoami)
o ~
, lo que es más flexible.
O, cuando ejecuto un script cortos en qué sitio busqué en google sugiere, ni tengo para reemplazar $(whoami)
por bruce
y/o ~
por /Users/bruce
.
La última vez, que yo recuerde, yo estaba irritada por la restricción de privilegios, es, probablemente, cuando me encontré con un laico-script busqué en google, con el fin de instalar una fuente de Látex.
Sin embargo, en la actualidad puedo recordar un caso único.
Que es, después de, mientras que el registro en batman, brew
-ed algo utilizando homebrew
(pues se requiere sudo privilegio), y logout
-ed de vuelta como bruce y brew
-ed algo.
Homebrew se quejó de un gran número de permisos incorrectos de ciertas carpetas en /usr/local
, y me instó para que se ejecute sudo chown -R $(whoami) blablabla
.
Me parecía que brew
habían establecido ciertas permiso a batman
's propio, y me volví loca para corregirlos uno por uno.
¿Qué hacer para evitar el momento en que, por ejemplo, brew
requiere sudo, mientras que el uso de una cuenta de personal?
O, después de todo, es la práctica que diariamente utilizan la cuenta debe contener menos de privilegio, simplemente poco realista?