Il y a des années, vous pouviez vous en passer en brew
tant que root simplement en le faisant chown brew
à root, mais ils ont supprimé cette fonctionnalité. Donc, dans Homebrew 1.1.6, j'avais l'habitude de modifier /usr/local/Homebrew/Library/Homebrew/brew.sh
pour supprimer le contrôle racine (celui qui disait que c'était "extrêmement dangereux") afin que je puisse exécuter en brew
tant que root.
La nouvelle version de Homebrew fonctionne toujours avec cela, mais continue de restaurer le brew.sh
fichier à chaque fois après avoir exécuté brew
, même si je chmod 500
le fais . Je pourrais écrire un script pour le changer puis l'exécuter brew
automatiquement, mais je ne sais pas si cela fonctionnera toujours et je ne veux pas prendre de risques. Quelqu'un a-t-il trouvé une méthode différente pour exécuter Homebrew en tant que root?
brew
tant que root? En outre, n'est-cesudo
pas suffisant pour vos besoins?sudo
exécute en tant que root, et cela me donne la même erreur "extrêmement dangereuse". Je veux exécuter en tant que root car sinon il a des problèmes pour installer certains packages, surtout si quelque chose n'a pas été installé via Homebrew (par exemple viapip
). J'ai emprunté cette voie plusieurs fois. De plus, il ne fonctionne pas correctement pour plusieurs utilisateurs sans solutions de rechange étranges, sauf si j'installe tout en tant que root.root
est risqué. Même en construisant un package sans gestionnaire de packages, vous construisez le package en tant qu'utilisateur sans privilèges (vous-même), puis installez le package commeroot
avecsudo
. Les gestionnaires de packages tels que Fink et MacPorts construisent tous les deux avec leurs propres utilisateurs sans privilèges, puis installent en tant queroot
. Homebrew ne dispose pas d'un tel mécanisme.brew.sh
fichier est rétabli après l'avoir modifié puis exécuté unebrew
commande. Je peux donc courirsudo brew whatever
etbrew whatever
en tandem très bien. Mabrew --version
sortie est donc: pourHomebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28)
info, j'ai modifié monbrew.sh
fichier pour commenter toutes les lignes de lacheck-run-command-as-root
fonction et j'ai placé une seulereturn
instruction en haut de la fonction.Réponses:
Après avoir apporté votre modification au script, essayez de définir l'indicateur immuable sur brew.sh.
Je n'ai pas testé. En règle générale, je ne donne pas racine aux applications dont les développeurs me supplient de ne pas le faire.
la source
sudo brew install
s s'exécutera normalement.Les utilisateurs typiques ne devraient pas faire cela, mais vous n'êtes pas typique, n'est-ce pas?
Deux problèmes:
Vous ne pouvez pas arrêter root. Si vous insistez pour utiliser root, root peut remplacer
brew.sh
quoi qu'il arrive .Vous ne pouvez pas vous arrêter
brew
, après tout, vous parlez de courirbrew
.Nous allons donc travailler avec cela. Configurons un alias à copier
brew.sh
puis à exécuterbrew
.(Fixez les chemins pour qu'ils correspondent à votre système).
Il ne vous reste plus qu'à:
(Il deviendra root, copiera
brew.sh
, puis s'exécutera enbrew
tant que root avec des arguments, puis ilbrew
sera écrasébrew.sh
et vous serez prêt à tout recommencer)Remarque: Vous pouvez également insérer
sudo
l'alias, mais cela se sent mieux car vous serez invité à saisir un mot de passe à chaque fois.En règle générale, vous ne pouvez pas utiliser
setuid
(chmod u+s
) pour rooter sur des scripts shell, pour des raisons de sécurité. Perl a un programme distinctsuidperl
qui pourrait être installé et pourrait augmenter les privilèges des utilisateurs, mais ces solutions sont un peu profondes pour une réponse rapide.la source