13 votes

Comment faire fonctionner Homebrew en tant que Root ?

Il y a quelques années, vous pouviez vous en sortir en courant brew comme Root juste par chowning brew à Root, mais ils ont supprimé cette fonctionnalité. Donc dans Homebrew 1.1.6, j'avais l'habitude d'éditer /usr/local/Homebrew/Library/Homebrew/brew.sh pour supprimer la vérification Root (celle qui dit que c'est "extrêmement dangereux") afin que je puisse exécuter brew en tant que racine.

La nouvelle version de Homebrew fonctionne toujours avec cela, mais elle continue à inverser l'ordre de priorité. brew.sh à chaque fois que je lance brew même si je chmod 500 ça. Je pourrais écrire un script pour le changer puis exécuter brew automatiquement, mais je ne suis pas sûr que 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 ?

3voto

Jason Points 329

Après avoir apporté votre modification au script, essayez de définir le drapeau immuable sur brew.sh.

chflags uchg /usr/local/Homebrew/Library/Homebrew/brew.sh

Je ne l'ai pas testé. En règle générale, je ne donne pas de racine aux applications dont les développeurs me supplient de ne pas le faire.

1voto

Able Mac Points 111

Les utilisateurs typiques ne devraient pas faire ça, mais vous n'êtes pas typique, n'est-ce pas ?

Deux questions :

  1. Tu ne peux pas arrêter Root. Si vous insistez pour utiliser Root, alors Root peut écraser brew.sh quoi qu'il arrive.

  2. Vous ne pouvez pas arrêter brew après tout, vous parlez de la course à pied. brew .

Nous allons donc travailler avec ça. Mettons en place un alias pour le copier. brew.sh puis exécutez brew .

alias brew='cp /<modified>/brew.sh /<actuall>/brew.sh; /usr/local/bin/brew'

(Corrigez les chemins pour qu'ils correspondent à votre système).

Maintenant, tout ce que vous avez à faire est :

sudo brew <arguments>

(Ça va devenir Root, copier sur brew.sh puis exécutez brew comme Root avec des arguments, après brew écrasera brew.sh et vous serez prêt à tout recommencer)

Note : Vous pouvez mettre sudo dans l'alias également, mais cette méthode est plus efficace car un mot de passe vous sera demandé à chaque fois.

En général, vous ne pouvez pas utiliser setuid ( chmod u+s ) pour Root sur les scripts du shell, par sécurité. Perl a un programme séparé suidperl qui pourraient être installés et qui pourraient élever les privilèges de l'utilisateur, mais de telles solutions sont un peu profondes pour une réponse rapide.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X