J'ai entendu dire qu'il était conseillé, dans l'idée générale du moindre privilège, que les utilisateurs de type Unix créent un autre compte sans le privilège sudo, en plus du compte intégré avec le privilège sudo. En Mac, cela se traduit par : il faut créer un compte personnel pour un usage quotidien, en plus du compte administrateur fourni avec l'ordinateur, réservé uniquement en cas de nécessité.
Pour être plus concret, disons bruce
est un bâton, que j'utilise quotidiennement, et batman
est un administrateur, que je n'utilise que lorsque cela est nécessaire. Mais comment puis-je, en me connectant batman
effectuer des tâches sudo, au nom de bruce
c'est-à-dire avec bruce
de l'entreprise ~
y $(whoami)
comme si je me connectais en tant que bruce
avec des privilèges ?
Pour illustrer cela, définissez /User/bruce/test.sh
:
#!/usr/bin/env bash
whoami
cd ~ && pwd
ls ~/Library/Preferences/Preferences/
(Oui, j'ai fait chmod 744 test.sh
) J'ai choisi la dernière ligne à des fins d'illustration artificielle que, normalement, il semble, ~/Library/Preferences/Preferences/
n'est pas accessible à un membre du personnel (c'est-à-dire un non-administrateur).
Ce que j'ai l'intention de recevoir, c'est bruce
, /Users/bruce
et réussi ls
sortie.
La première tentative est que, en effet, si j'ouvre bruce
Le terminal de l'entreprise, mais login
la fête de batman
(afin d'obtenir le privilège sudo), et exécutez
sudo /Users/bruce/test.sh
Je reçois root
, /Users/batman
et réussi ls
sortie de ~/Library/Preferences/Preferences/
montrant que la maison est celle de Batman, ce qui n'est pas étonnant.
Ou, un duplicata possible (a) affirme que sudo -i -u bruce
me permet d'exécuter des commandes comme bruce
. Mais non ! Si j'ouvre (comme ci-dessus) bruce
Le terminal de l'entreprise, login
la fête de batman
et exécutez
sudo -i -u bruce /Users/bruce/test.sh
Je reçois bruce
, /Users/bruce
et ls: : Permission denied
.
Encore un autre duplicata possible (b) déclare que sudo -H -u bruce
utilise la maison de Bruce. Eh bien, encore une fois, quand j'ouvre bruce
Le terminal de l'entreprise, login
la fête de batman
et exécutez
sudo -H -u bruce bash /Users/bruce/test.sh
Moi aussi, j'ai bruce
, /Users/bruce
et ls: : Permission denied
.
Le lecteur pourrait penser que ma demande est déraisonnable ; mais je veux juste savoir s'il est possible d'accorder temporairement le privilège sudo à un personnel -- ce qui peut être pratique à certains moments. Par exemple, si cela peut être fait, lorsque je fais un court script je n'ai plus besoin d'éviter $(whoami)
o ~
ce qui le rend plus flexible. Ou encore, lorsque j'exécute un court script ce que le site que j'ai googlé suggère, je n'ai pas non plus à remplacer $(whoami)
par bruce
et/ou ~
par /Users/bruce
.
La dernière fois, autant que je m'en souvienne, que j'ai été irrité par la restriction de privilège, c'est probablement lorsque j'ai exécuté un script fait par un profane, que j'ai googlé, afin d'installer une police LaTeX.
Cependant, pour l'instant, je ne me souviens que d'un seul cas. C'est-à-dire, après que j'ai, en me connectant à Batman, brew
- quelque chose en utilisant homebrew
(car il requiert le privilège sudo), et logout
- en tant que Bruce et brew
- quelque chose d'autre. Homebrew se plaignait d'un grand nombre de permissions incorrectes de certains dossiers sous /usr/local
et m'a poussé à me présenter sudo chown -R $(whoami) blablabla
. Il me semblait que brew
avait fixé une certaine permission à batman
et ça me rendait folle de les réparer un par un.
Que faites-vous pour contourner le moment, par exemple, que brew
nécessite sudo, tout en utilisant un compte personnel ? Ou, après tout, la pratique selon laquelle le compte utilisé quotidiennement doit contenir le moindre privilège est-elle simplement irréaliste ?