Berechtigung für Composer in /usr/local/bin/ verweigert

Lesezeit: 5 Minuten

Ich habe mich an die Dokumentation gehalten https://getcomposer.org/doc/00-intro.md#global Composer global auf Arch Linux installieren. Wenn ich es tue composer self-updatebekomme ich diese Meldung:

  [ErrorException]                                                                                    
  rename(/home/hannes/.composer/cache/composer-temp.phar,/usr/local/bin/composer): Permission denied 

Die Berechtigungen im /usr/local/bin/ (Ich habe sie in 777 geändert, aber es hat nicht geholfen):

-rwxrwxrwx  1 hannes users 1104202 30. Mai 18:07 composer

In meinem Home-Verzeichnis habe ich folgendes gemacht:

sudo chmod -R 777 .composer/

Im /etc/php/php.inidas open_basedir sieht so aus:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/usr/local/bin/

Ich habe es auch versucht sudo composer self-update aber es hat nicht so gut funktioniert und ist möglicherweise nicht der richtige Weg. (?). Was könnte ich noch versuchen, damit das funktioniert?

  • Sie sollten die Berechtigungen der überprüfen Verzeichnis /usr/local/bin/, nicht die Datei darin. Der Prozess muss in das Verzeichnis schreiben, das gewährt werden muss. Und abgesehen davon ein Hinweis: nicht immer alles auf 777 stellen. Dafür gibt es keinen Grund und es macht Ihr System angreifbar.

    – Arkascha

    20. Juni 2015 um 16:40 Uhr


  • ok, soll ich chown das Verzeichnis /usr/local/bin für meinen Benutzer (mich) ? Es sieht aus wie das : drwxr-xr-x 2 root root 4096 30. Mai 18:08 bin Es sieht so aus, als ob es nur root gehören sollte, nicht einem Benutzer. (?)

    – haheute

    20. Juni 2015 um 17:19 Uhr

  • Anstatt hier einen Kommentarfluss zu starten, habe ich unten eine Antwort gepostet.

    – Arkascha

    20. Juni 2015 um 18:02 Uhr

Benutzer-Avatar
Chef COTIGA

Auf Ubuntu-Server >= 16.04

ERSTE

sudo rm /usr/local/bin/composer

UND

cd ~/.cache/composer
chmod 755 composer-temp.phar
sudo mv composer-temp.phar /usr/local/bin/composer

  • cd ~/.cache/composer sollte sein cd ~/.composer/cache

    – Oliver Tappin

    23. Mai 2018 um 14:10 Uhr

  • Dies hat bei mir in der Amazon ec2-Instanz funktioniert. Natürlich müssen Sie die von Oliver Tappin vorgeschlagene Änderung durchführen.

    – Deepak Daniel

    7. Februar 2019 um 8:18 Uhr

  • ~/.cache/composer ODER ~/.composer/cache hängen davon ab, wie der Composer installiert wurde. Auf meinen Installationen sind Standorte ~/.cache/composer Ich installiere Composer so: curl -sS https://getcomposer.org/installer | php

    – Chef COTIGA

    8. Februar 2019 um 10:56 Uhr


  • Dies ist meine bevorzugte Antwort. Sie müssen keine Berechtigungen oder ähnliches ändern.

    – Michael Käfer

    23. März 2019 um 8:33 Uhr

  • sollte es nicht sein sudo cp ... immer eine temporäre Kopie behalten?

    – Fayçal Borsali

    26. November 2020 um 13:27 Uhr


Dies könnte der Fall sein, wenn Sie heruntergeladen haben composer.phar direkt ,

aber nicht durch Laufen php composer-setup.php

machen composer.phar ausführbar mit dem folgenden Befehl, bevor Sie es verschieben /usr/local/bin/composer oder nach Umzug

sudo chmod 755 composer.phar

composer-setup.php wird diese Änderung standardmäßig für uns vornehmen

  • Ich tat dies und es funktionierte für mich. Ich bin mir nicht sicher, ob es den chmod gemacht hat, bevor es in /usr/local/bin verschoben wurde, oder einfach nur Composer neu installiert hat. Macht keinen Sinn, da es bereits die richtigen Berechtigungen hatte, aber es funktioniert jetzt ohne Fehler.

    – Cnizzardini

    22. Juni 2017 um 2:31 Uhr

  • Darf ich wissen, wo der Pfad /usa/local/bin @Raaghu ist

    – Juwel

    28. November 2018 um 4:52 Uhr

  • @Gem Dies ist ein Verzeichnispfad im Linux-Betriebssystem.

    – Raaghu

    28. November 2018 um 11:28 Uhr

  • @Raaghu Wie kann ich auf der Windows-Plattform laufen? Ich verwende Composer.

    – Juwel

    28. November 2018 um 11:34 Uhr

  • @Gem Klicken Sie einfach mit der rechten Maustaste auf die cmd-Konsole und klicken Sie auf “Als Administrator ausführen”. Dann können Sie den Selbstaktualisierungsbefehl ausführen. Es ist so ähnlich wie das Ausführen von “sudo” unter Linux.

    – NKol

    31. Mai 2021 um 10:54 Uhr

Sie sollten die Berechtigungen des Verzeichnisses /usr/local/bin/ überprüfen, nicht nur die Datei darin. Der Prozess muss sowohl in die Datei als auch in das Verzeichnis schreiben, die beide gewährt werden müssen.

Ansonsten ein genereller Hinweis: Stellen Sie nicht immer alles auf 777. Das hat keinen Grund und macht Ihr System angreifbar.

Laut der Zeile, die Sie im letzten Kommentar gepostet haben, ist das Verzeichnis derzeit beschreibbar nur für den Root-Benutzer selbst. Das würde den Fehler erklären, den du bekommst. Du solltest nicht Machen Sie Ihr eigenes Benutzerkonto zum Eigentümer, Linux-Systeme sind Mehrbenutzerumgebungen. Denken Sie stattdessen über einen dieser Ansätze nach:

  • Fügen Sie das Konto hinzu, das ausgeführt werden soll composer zum Gruppenstamm (ein Benutzerkonto kann mehreren Gruppen angehören) und die Verzeichnisgruppe beschreibbar machen
  • Ändern Sie den Gruppenbesitz des Verzeichnisses in eine Gruppe, der das Konto angehört, und machen Sie die Verzeichnisgruppe beschreibbar
  • benutze die sudo Dienstprogramm zum Installieren und Aktualisieren der composer Dienstprogramm

Die letzte Option ist die in der Regel gewählte und bevorzugte. Es belässt Berechtigungen wie sie sind (konservativ) und verwendet nur erhöhte Berechtigungen für Systemwartungsaufgaben wie Installation und Upgrade.

  • Wie kann ich die Schritte ausführen, die Sie in Aufzählungszeichen beschreiben? Linux-Befehle sind nicht meine Expertise

    – ltdev

    24. Januar 2018 um 11:19 Uhr

  • 1. Finden Sie Ihren Benutzer [whoami] 2. Benutzer zur Stammgruppe hinzufügen [sudo adduser yourusername root] 3. Terminal neu starten

    – Winnipass

    5. März 2019 um 14:44 Uhr


  • Linux-Befehle wären besser gewesen-

    – Albuquerque-Webdesign

    18. Juni um 4:33

Verwenden Sie den Befehl sudo für jeden Befehl, der in die Stammdateien des Ordners schreibt. Es hat für mich funktioniert.

Verwenden Sie sudo “Ihr Befehl”

Auch nach dem Verschieben der Datei per sudo mv composer.phar /usr/local/bin/composer Ich habe einen Berechtigungsfehler erhalten, als ich versuchte, die auszuführen composer Befehl. sudo chmod 755 /usr/local/bin/composer feste Dinge für mich.

Benutzer-Avatar
Sergej Radist

Sie könnten Ihrem Arbeitsbenutzer vorübergehend die Rechte hinzufügen, dann den Composer ohne Fehler aktualisieren und dann die Rechte zurückerhalten.

sudo chmod 777 /usr/bin/
composer self-update
sudo chmod 755 /usr/bin/

Benutzer-Avatar
haheute

Jetzt gibt es ein Paket für Composer in Arch Linux, das für mich funktioniert:

sudo pacman -S composer

1257710cookie-checkBerechtigung für Composer in /usr/local/bin/ verweigert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy