“N'utilisez pas le système de regroupement en tant que root” - quelle est la différence exacte faite par l'aide de la racine?
Si vous exécutez ruby bundler à partir de la ligne de commande en étant connecté en tant que root, vous obtenez le message d'avertissement suivant:
Ne pas exécuter de Bundler en tant que root. Bundler peut demander sudo si elle est nécessaire,
et l'installation de votre bundle comme racine de briser cette application pour tous les
les utilisateurs non-root sur cette machine.
Qu'est-ce que c'est exactement la différence que l'exécution de bundler en tant que root rend les joyaux qu'il installe?
Est-il à voir avec les autorisations des fichiers qu'il installe pour chaque bijou? Va Ruby essayez d'accéder à la gemme de fichiers qu'un utilisateur non-root (et si oui, quel utilisateur /groupe Rubis utiliser et comment pourrais-je le trouver)?
Quels seraient les symptômes d'une application qui est cassé à cause d'un système de regroupement être utilisé en tant que root?
Ma raison spécifique pour demander c'est parce que je suis en train de bundler sur une base VPS Centos où je n'ai pas besoin de configurer les utilisateurs non-root. Je suis avoir d'autres problèmes avec des gemmes installé via bundler (Error: file to import not found or unreadable: gemname
malgré le joyau en question étant présent dans gem list
), et je me demande si l'installation de l'gemmes via bundler en tant que root peut avoir fait les fichiers illisibles de Ruby.
Je veux savoir si j'ai besoin de configurer un utilisateur non-root compte purement pour l'exécution de bundler, et si je le fais, ce que les groupes et les privilèges de cet utilisateur devra permettre Ruby pour exécuter les gemmes bundler installe.
Ou puis-je chown
ou chgrp
le joyau des dossiers? Si oui, cela dépend-il quelque chose à voir avec la façon dont Ruby est installé? (J'ai utilisé RVM et mes gemmes fin dans /usr/local/rvm/gems/
qui est la propriété de la racine dans le groupe rvm) Cette faiblement liés à la question de la réponse, cela implique que non spécifiée aspects de la façon dont Ruby est installé influence bundler les autorisations d'exigences.
Des recherches sur le "Ne pas courir bundler en tant que root" message arrive seulement avec une question sans réponse et les plaintes que cet avertissement est apparemment "comme il disent d'aller dormir à 8 heures du soir" (lien NSFW langue).
OriginalL'auteur user568458 | 2014-08-22
Vous devez vous connecter pour publier un commentaire.
J'ai donc dû puiser dans la commande git log de l'histoire de bundler (repo, parce que GitHub ne pas autoriser la recherche dans git commet des messages plus.
La validation
c1b3fd165b2ec97fb254a76eaa3900bc4857a357
dit :La lecture de ce numéro, vous comprendre la véritable raison pour laquelle vous ne devriez pas utiliser le
root
utilisateur:Nice! Dans un environnement de développement où la plupart des gens "en direct" l'avertissement est de très bons conseils. Mais le Rubis de la culture est un peu myope ("opinions"?) sur ce problème. Sur un serveur déployer par exemple, il y a une bonne affaire pour sauter de RVM, RBENV, et toutes les hoopla et simplement l'installation d'une version de Ruby et de toutes les Gemmes en un seul endroit en tant que root. Surtout ces jours où, si vous avez besoin d'un autre utilisateur/l'environnement de l'utilisateur, vous venez de tourner un autre VM. Il est facile de perdre plus de temps sur le multi-Ruby/Gem droit de l'environnement que sur le reste du déploiement.
Si cet avertissement est seulement pour OS X de choses? Je veux dire sur un standard nix il serait ok?
Je pense que oui, sauf si il y a d'autres imprévus, des effets secondaires inconnus 😉
Que devriez-vous faire une fois que vous avez déjà foiré et a couru le bundler en tant que root pour installer quelque chose?
OriginalL'auteur Pak
Pour RBENV utilisateurs. Je viens de résoudre ce problème pour moi. Il est probable que vous êtes à l'aide de l'usr bundler. Vérifier en tapant
gem list bundler
si cette page est vide, vous devez installer bundler pour rbenv via
gem install bundler --no-ri --no-rdoc
recharger votre CLI, et vous devriez maintenant être en mesure d'exécuter bundle sans le sudo.
OriginalL'auteur Mike