Lese- / Schreibberechtigungen im Verzeichnis / opt

54

Ich habe Android Studio problemlos in meinem / opt-Verzeichnis installiert und benutze es. Vor kurzem hat Android Studio mich jedoch über ein Update informiert. Das Update wird jedoch nicht ausgeführt, da es im opt-Verzeichnis, in dem es installiert ist, keine Lese- / Schreibberechtigungen aufweist.

Kann jemand das beste Mittel für diese Situation empfehlen? Ich würde es vorziehen, meine Installation nicht in ein anderes Verzeichnis zu verschieben. Ich weiß auch nicht, dass ich die Berechtigungen für das Verzeichnis ändern möchte, obwohl ich möglicherweise versucht bin, dies für das Update zu tun und es dann zurückzusetzen.

Fehlermeldung:

Studio does not have write access to /opt/android-studio. Please run it by a privileged user to update
wayneeusa
quelle
Wie versuchst du zu aktualisieren? Wie hast du installiert? PPA? Kannst du Android Studio als root ausführen? also sudo /opt/android-studiound dann updaten?
Mark Kirby
1
Ich vermute, Sie haben es in das Verzeichnis / opt / kopiert. Ich werde es nicht empfehlen, es dort zu belassen, damit Sie sich nicht um die Berechtigungsprobleme kümmern müssen. Verwenden Sie am besten umake, um Ihre Android-Entwicklungsumgebung einzurichten .
Gayan Weerakutti
@markkirby Ich habe es dort kopiert und das Installationsskript studio.sh verwendet. Ich würde es von sudo ausführen, aber studio.sh startet die Installation erneut. Überrascht, dass ich keine Datei zum Starten des Programms sehe. Vielleicht sollte ich das Installationsskript
überarbeiten, um
Ich empfehle, einer der Antworten den Status der richtigen Antwort zuzuweisen. Andernfalls kann es für Benutzer, die diesen Beitrag in Zukunft verwenden, irreführend sein. Wenn ein Jahr später keine korrekte Antwort erteilt wurde, bedeutet dies, dass keine der beiden Antworten korrekt ist. Wenn tatsächlich beide das vorliegende Problem effizient angehen. Ich habe deine Frage mit UPVOT versehen, übrigens:)
Tony Gil

Antworten:

99

Ich habe den Besitzer des Android Studio-Verzeichnisses von rootzu meinem userKonto geändert und es hat funktioniert. Hier ist der Befehl, bei dem $USERsich Ihr aktiver Benutzer von selbst ändert:

sudo chown -R $USER:$USER /opt/android-studio
Latif
quelle
2
funktioniert wirklich für mich .. Meine 10-tägige Suche endet hier
Ranjith Kumar
8
Das wird funktionieren, aber gibt es Nachteile, wenn alle Dateien und Verzeichnisse in einem zufälligen Unterverzeichnis von / opt liegen, das einem zufälligen Benutzer gehört? Wenn sich die Installation in / opt befindet, bedeutet dies möglicherweise, dass sie für mehrere Benutzer gedacht ist. Daher ist zu erwarten, dass andere Benutzer auf dem System Studio ausführen. Könnte das ein Problem sein?
Yannick
1
benutzte diesen Trick, um den PHP-Editor wie Geany für das Verzeichnis / opt / lampp / htdocs von xampp-Installationen zu konfigurieren, damit er auf dem xampp-Server geschrieben und ausgeführt werden kann. hth ..
Steer360
du bist der Mann !
Tahir Yasin
2
Guter Punkt @Yannick, aber wer in aller Welt hat mehr als einen Benutzer auf ihrem Ubuntu-Setup?
Bron Davies
8

Sie können das Verzeichnis /optmit dem folgenden Befehl von zu Ihnen nach Hause verschieben:

sudo cp -r /opt/android-studio ~/

Oder um Berechtigungen zu erteilen, müssen Sie Folgendes verwenden chmod:

sudo chmod +w /opt/android-studio/some-file

So fügen Sie allen rekursiven Verzeichnissen Berechtigungen hinzu:

sudo chmod +w -R /opt/android-studio/some-file

Schauen Sie sich meine Antwort https://askubuntu.com/a/638799/150504 an , die ein wenig über chmod und dessen Verwendung erklärt

Maythux
quelle
Muss ich die spezifische ausführbare Datei angeben, die über diese Berechtigung für den Ordner verfügt? Ich habe es mit studio.sh versucht, aber ich glaube nicht, dass dies die eigentliche Datei ist, die ausgeführt wird, wenn ich auf das Symbol klicke, um android studio auszuführen.
Wayneeusa
hat nicht für mich gearbeitet. Beim Erstellen eines Verzeichnisses. versuchtsudo chmod +w -R /opt/android-sdk-linux
David
Zuerst müssen wir studio.sh aus dem bin-Verzeichnis mit sudo ausführen, dann wird nur die Schreibberechtigung wiedergegeben.
Dev_ry
6

Ich habe die Gruppe von / opt / android-studio (und / opt / android-sdk ) auf Benutzer festgelegt und der Gruppe Schreibrechte hinzugefügt.

In meinem Fall die Gruppe Benutzer existiert bereits. Aber als Hinweis:

Benutzer von sudo addgroup

Ich musste meinen Benutzer zur Benutzergruppe hinzufügen :

sudo adduser $ USER Benutzer

Dann legen Sie die Gruppe des Verzeichnisses fest:

sudo chown -R root: benutzer / opt / android-studio

Weil Updates Dateien schreiben müssen:

sudo chmod -R g + w / opt / android-studio

Ich habe diese Anleitung einmal benutzt, ich hoffe, ich habe etwas nicht vergessen

Bearbeiten: Auf diese Weise sollen Dateien nicht zu breit zugänglich sein, aber dennoch von ausgewählten Benutzern verwendet werden können

ArcticSnowSky
quelle
1

Ich hatte ein ähnliches Problem mit Rubymine.

sudo chown -R $USER:$USER /opt/Rubymine

Funktionierte auch für mich, aber es kann gefährlich sein, Berechtigungen in Systemordnern zu ändern. Wahrscheinlich ist es besser, die Installation nur einmal als root auszuführen, um Aktualisierungen zu ermöglichen. z.B.

sudo updatedb && sudo locate rubymine.sh
sudo /path/to/rubymine.sh 
Bertrand war in Ordnung
quelle
Ich auch! Aber wenn ich Ihre Lösung ausprobiere, werden erneut Lizenzinformationen abgefragt, sodass ich nicht sicher bin, was ich zu diesem Zeitpunkt tun soll. Ich möchte meine Lizenzbedingungen nicht durcheinander bringen ...
mltsy
-1

Ich bekam den gleichen Fehler. Das Ausführen des folgenden Befehls vom Terminal aus löste das Problem.

sudo chown -R $USER:$USER /opt/idea-IC-173.4548.28/

Sie müssen sich nicht im selben Verzeichnis befinden, um den Befehl auszuführen.

Tahir Han
quelle
-2
sudo chmod -R 777 your_android_studio_location_path/

Zum Beispiel (in meinem Ubuntu 16.04):

sudo chmod -R 777 /home/igor/Android/
Igor Osipov
quelle
7
Das Setzen von Dateiberechtigungsmasken auf 777 ist fast immer ein schlechter Rat . -1
David Foerster
Es ist ein schlechter Rat, aber im Moment hat es funktioniert, also habe ich zugestimmt.
David
2
@david 777 bedeutet, dass jeder (auch jeder über das Internet) auf die Datei zugreifen, sie ändern und löschen kann. "es hat funktioniert" ist keine gute Ausrede, um eine so kritische Sicherheitslücke in Ihrem System zu öffnen.
Mostafa Ahangarha
@david Zerschmettere deinen PC, gehe in den Laden und kaufe einen neuen, dann würde die Installation der neuesten Version von Android Studio auch "funktionieren", ist aber ein schlechter Rat und sollte nicht befürwortet werden. Der Punkt ist, dass es oft mehrere Möglichkeiten gibt, ein Problem zu "lösen", von denen einige der "falsche" und andere der "richtige" Weg sind. Diese Antwort ist mit ziemlicher Sicherheit der falsche Weg.
Jon Bentley