avertissement: monde non sécurisé en écriture dir / usr / local / bin dans PATH, mode 040777

172

Chaque fois que j'exécute cette commande rails server:

avertissement: monde non sécurisé en écriture dir / usr / local / bin dans PATH, mode 040777

J'ai cherché une solution ici et ils ont dit de taper: chmod go-w /usr/local/bin

Mais j'obtiens cette erreur:

chmod: Impossible de changer le mode de fichier sur / usr / local / bin: opération non autorisée

J'utilise OS X au fait.

Xandman
la source
7
J'ai eu le même problème juste après avoir installé le logiciel d'un dongle USB haut débit T-Mobile et je me demandais s'il était responsable de le faire. Utilisez-vous par hasard également un dongle?
Peter Nixey
5
Oui je l'ai eu après l'installation d'un dongle USB mobile Virgin (Australie)
nocache
3
Oh mon Dieu vraiment? Merci pour cette information! J'ai également remarqué qu'après avoir essayé d'exécuter le logiciel de clé T-Mobile, il f * mes autorisations.
Oto Brglez
J'utilise un dongle LTE par AU (transporteur japonais) qui nécessite également une certaine magie en ligne de commande pour me rendre au travail ...
Nicolas Miari

Réponses:

278

Vous aurez besoin d'un accès root pour ce faire. Si vous n'êtes pas déjà l'administrateur, connectez-vous en tant qu'administrateur. Ensuite, utilisez 'sudo' pour modifier les autorisations:

sudo chmod go-w /usr/local/bin

Évidemment, cela signifie que vous ne pourrez plus installer de matériel dans / usr / local / bin sauf via «sudo», mais vous ne devriez probablement pas le faire de toute façon.

Jonathan Leffler
la source
si je tape la commande ci-dessus, j'obtiens: sudo: / etc / sudoers est le mode 0644, devrait être 0440 Erreur de segmentation
Xandman
@Xandman: Je ne sais pas ce qui se passe avec l'erreur de segmentation; les programmes ne devraient pas faire cela (surtout pas ceux liés à la sécurité comme sudo). De toute évidence, quelqu'un a falsifié les autorisations de fichiers sur votre système - je recommande de leur lire l'acte d'émeute. En attendant, vous êtes probablement confronté à une situation de poulet et d'oeuf; vous ne pouvez pas utiliser «sudo» tant que vous n'avez pas corrigé les autorisations sur / etc / sudoers, et vous ne pouvez pas corriger les autorisations sur / etc / sudoers sans utiliser «sudo». Je ne sais pas quelle est la meilleure solution ...
Jonathan Leffler
1
Je suppose que je devrais me pendre alors. J'ai bricolé mon MAC depuis que je suis passé de Windows. J'ai essayé d'en faire un ordinateur portable Windows. J'ai probablement fait quelque chose de stupide
Xandman
1
Merci pour le commentaire Jonathan, tu m'as donné une idée pour vérifier les permissions. J'ai réparé les autorisations avec l'Utilitaire de disque et lorsque j'ai exécuté la commande: sudo chmod go-w / usr / local / bin, cela ne passera pas.
Xandman
@Xandman: Pas besoin de la pendaison tant que vous n'avez pas prouvé que vous êtes un récidiviste. Vous dites "ça ne passera pas" - en quoi ça ne marche pas? Avec «sudo», vous fournissez votre propre mot de passe (avec «su», vous fournissez le mot de passe de l'utilisateur cible - root, généralement). Pour régler certains de ces problèmes, vous devrez peut-être activer la connexion root (Préférences système en tant qu'administrateur, IIRC) et corriger les autorisations en tant que root. Cela suppose que vous en savez maintenant assez pour ne pas vous pendre accidentellement. Ou il serait peut-être préférable de refaire l'installation à partir de zéro; cela dépend de combien vous avez modifié les autorisations.
Jonathan Leffler
63

J'ai eu la même erreur ici MacOSX 10.6.8 - il semble que ruby ​​vérifie si un répertoire (y compris les parents) dans le chemin est accessible en écriture dans le monde entier. Dans mon cas, il n'y avait pas de / usr / local / bin car rien ne l'avait créé.

donc je devais faire

sudo chmod 775 /usr/local

pour se débarrasser de l'avertissement.

Une question ici est: est-ce que tout processus non root: wheel sous MacOS doit créer quelque chose dans / usr / local?

Peterk
la source
9
Ouais,775 => root(7) group(7) others(5), 7 => read(4) + write(2) + execute(1), and 5 => read(4) + execute(1)
crizCraig
8

Essayer: sudo chmod go-w /usr/local/bin

Le répertoire / usr / local / bin appartient au compte root(c'est-à-dire administrateur), donc même si vous pouvez y écrire, vous ne pouvez pas changer les permissions sur celui-ci. La sudocommande signifie "exécuter la commande suivante en tant que root" et fonctionne un peu comme cliquer sur l'icône de verrouillage dans les boîtes de dialogue des Préférences Système.

Jander
la source
7

J'ai eu le même problème sous OSX. Il peut être résolu en exécutant des utilitaires de disque pour réparer les autorisations. Je suis d'accord avec Peter Nixey: dans mon cas, cela se produit lorsque mon dongle 3G installe ou réinstalle son pilote. La réparation des autorisations résout ensuite le problème.

Larry Hynes
la source
7

J'utilise Mountain Lion. Ce que j'ai fait, c'est Rechercher / usr / local et Obtenir des informations. Il y a le partage et les autorisations. Assurez-vous que seuls l'utilisateur et l'administrateur sont les seuls à disposer des autorisations de lecture et d'écriture. Toute autre personne doit avoir un accès en lecture uniquement. Cela a réglé mon problème.

Ses utilitaires de disque Run et les autorisations de réparation sont normalement utiles.

Muendo
la source
3

Même chose ici, apparemment mon dossier / usr / local était accessible en écriture dans le monde entier, donc je l'ai fait 755

# chmod 755 /usr/local

Il est également apparu qu'un dongle mobile Hauwei que j'avais utilisé avait également installé des répertoires inscriptibles dans le monde entier dans / usr / local

Monsieur P
la source
3

Si vous utilisez OSX et que vous l'obtenez souvent, une autre bonne chose à considérer est d'utiliser un outil de correction des autorisations OSX intégré. Si vous n'avez pas changé le mode de vos répertoires, quelque chose d'autre l'a fait et il est possible que d'autres répertoires aient également des autorisations excessives - cet outil les réinitialisera tous aux paramètres d'usine par défaut, ce qui est une bonne idée de sécurité. Il existe un excellent guide sur le stackextange Apple sur ce processus même .

Kyle Hotchkiss
la source
3

Vous devez courir

sudo chmod o-w -R /usr/local 
Jai Kumar Rajput
la source
2
pour moi -R doit être directement après chmodsudo chmod -R o-w /usr/local/
bormat
2

Même moi, je suis tombé sur un problème similaire. J'utilise KDE sur ubuntu 12 et en jouant dans mon dossier personnel, j'ai accidentellement changé les autorisations pour le groupe et les autres car "peut afficher et modifier le contenu" en faisant un clic droit dans mon dossier personnel, puis sur les propriétés et j'ai tout oublié.

Mon avertissement était:

warning: Insecure world writable dir /home/my_home_folder in PATH, mode 040777

Donc, dans mon cas, c'était le dossier personnel. J'ai annulé les modifications des autorisations et j'ai arrêté de recevoir ces avertissements lors de l'exécution du serveur rails ou des tâches de rake pour exécuter mes tests.

Arkiver
la source
1

J'ai également exactement le même problème avec / usr / local / bin et / etc / sudoers sur OSX Snow lepard.Même lorsque je me suis connecté en tant qu'administrateur et que j'ai essayé de modifier les autorisations via le terminal, il est toujours indiqué permis". Et j'ai fait ce qui suit pour obtenir l'autorisation de ces dossiers.

Depuis le terminal, j'ai accédé au fichier / etc / sudoers et en utilisant l'éditeur pico, j'ai ajouté le code suivant: username ALL = (ALL) ALL Remplacez "username" par le nom de votre compte MAC OS

Sayanee
la source
0

J'ai eu la même erreur ici MacOSX 10.11 - il semble que ruby ​​vérifie si un répertoire (y compris les parents) dans le chemin est accessible en écriture dans le monde entier. Dans mon cas, il n'y avait pas de / usr / local / bin car rien ne l'avait créé.

Exécutez cette commande dans votre terminal.Essayez ceci sudo chmod 775 / usr / local Après cela, si vous avez un mot de passe sur votre mac, vous devez entrer le mot de passe. Maintenant, ce problème sera résolu.

Mandeep Singh
la source
0

Cela devrait résoudre votre problème: chmod go-w {/path/of/user}

aphexlog
la source