Uprawnienia do odczytu / zapisu w katalogu / opt


54

Zainstalowałem Android Studio w katalogu / opt bez żadnych problemów i korzystałem z niego. Ostatnio jednak Android Studio poinformowało mnie o aktualizacji. Aktualizacja nie wykona jednak, ponieważ mówi, że nie ma uprawnień do odczytu / zapisu w katalogu opt, w którym jest zainstalowana.

Czy ktoś może polecić najlepsze rozwiązanie tej sytuacji? Wolałbym nie przenosić instalacji do innego katalogu. Nie wiem też, czy chcę zmienić uprawnienia do katalogu, choć może kusi mnie to do aktualizacji, a następnie cofnięcia.

Komunikat o błędzie:

Studio does not have write access to /opt/android-studio. Please run it by a privileged user to update

Jak próbujesz zaktualizować? Jak zainstalowałeś? PPA? Czy możesz uruchomić Android Studio jako root? tj. sudo /opt/android-studioa następnie zaktualizować?
Mark Kirby

1
Myślę, że skopiowałeś go do katalogu / opt /. Nie polecam trzymania go tam, więc nie musisz się martwić problemami z pozwoleniami. Najlepiej jest użyć umake, aby skonfigurować środowisko programistyczne Androida .
Gayan Weerakutti

@markkirby Skopiowałem go tam i użyłem skryptu instalacyjnego studio.sh Uruchomiłbym sudo, ale studio.sh ponownie rozpoczyna instalację. Zaskoczony, że nie widzę pliku do uruchomienia, aby uruchomić program. Może powinienem sprawdzić skrypt instalacyjny, aby zobaczyć, gdzie znajduje się plik wykonywalny ..
wayneeusa

zalecam przyznanie jednej z odpowiedzi statusu poprawnej odpowiedzi. w przeciwnym razie może być mylące dla użytkowników, którzy otrzymają ten post w przyszłości - jeśli poprawna odpowiedź nie zostanie udzielona 1 rok później, oznacza to, że żadna odpowiedź nie jest poprawna. Kiedy w rzeczywistości oba skutecznie rozwiązują dany problem. I UPVOTED pytanie, btw:)
tony gil

Odpowiedzi:


99

Zmieniłem właściciela katalogu studia Androida z rootna moje userkonto i zadziałało. Oto polecenie, $USERktóre samo zmieni się w bieżącego aktywnego użytkownika:

sudo chown -R $USER:$USER /opt/android-studio

2
naprawdę działa dla mnie. Moje 10-dniowe wyszukiwanie kończy się tutaj
Ranjith Kumar

8
To zadziała, ale czy istnieją wady posiadania wszystkich plików i katalogów w losowym podkatalogu / opt należącym do losowego użytkownika? Jeśli instalacja jest włączona / opt, może to oznaczać, że jest ona przeznaczona dla wielu użytkowników, więc można oczekiwać, że inni użytkownicy w systemie będą pracować w studiu. Czy to może jakoś stanowić problem?
Yannick

1
użył tej sztuczki, aby skonfigurować edytor php, taki jak Geany, do katalogu / opt / lampp / htdocs instalacji xampp do pisania i uruchamiania na serwerze xampp.
hth

jesteś meżczyzną !
Tahir Yasin

2
dobry punkt @Yannick, ale kto na świecie ma więcej niż jednego użytkownika w konfiguracji Ubuntu 😂
Bron Davies

8

Możesz przenieść katalog z /optdomu do domu za pomocą komendy:

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

Lub, aby udzielić uprawnień, musisz użyć chmod:

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

aby dodać uprawnienia do wszystkich programów rekursywnych:

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

Spójrz na moją odpowiedź https://askubuntu.com/a/638799/150504, które wyjaśniają trochę o chmod i jak używać


Czy muszę określać konkretny plik wykonywalny, który będzie miał to uprawnienie do folderu? Próbowałem tego ze studiem.sh, ale nie sądzę, że to jest plik, który jest uruchomiony, kiedy klikam ikonę, aby uruchomić studio Android.
wayneeusa,

nie działało dla mnie. Podczas tworzenia katalogu. Próbowałemsudo chmod +w -R /opt/android-sdk-linux
David

Najpierw musimy uruchomić studio.sh z katalogu bin za pomocą sudo, wtedy tylko prawo do zapisu jest odzwierciedlone.
dev_ry

6

Ustawiłem grupę / opt / android-studio (i / opt / android-sdk ) dla użytkowników i dodałem uprawnienia do zapisu dla grupy.

W moim przypadku użytkownicy grupy już istnieli. Ale jako wskazówka:

Użytkownicy sudo addgroup

Musiałem dodać mojego użytkownika do grupy użytkowników :

użytkownicy sudo adduser $ USER

Następnie ustaw grupę katalogu:

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

Ponieważ aktualizacje muszą zapisywać pliki:

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

Raz skorzystałem z tej instrukcji, mam nadzieję, że czegoś nie zapomniałem

edycja: W ten sposób pliki nie będą zbyt szeroko dostępne, ale nadal będą mogły być używane przez wybranych użytkowników


1

Miałem podobny problem z Rubymine.

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

też dla mnie działało, ale zmiana uprawnień w folderach systemowych może być niebezpieczna. Prawdopodobnie lepiej po prostu raz uruchomić instalację jako root, aby umożliwić aktualizację. na przykład.

sudo updatedb && sudo locate rubymine.sh
sudo /path/to/rubymine.sh 

Ja też! Ale kiedy wypróbowuję twoje rozwiązanie, ponownie prosi o informacje o licencji, więc nie jestem pewien, co robić w tym momencie ... włożyć to ponownie? Nie chcę zepsuć warunków mojej licencji ...
mltsy

-1

Otrzymałem ten sam błąd. Uruchomienie następującego polecenia z terminala rozwiązało problem.

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

Nie musisz znajdować się w tym samym katalogu, aby wykonać polecenie.


-2
sudo chmod -R 777 your_android_studio_location_path/

Na przykład (w moim Ubuntu 16.04):

sudo chmod -R 777 /home/igor/Android/

7
Ustawienie masek uprawnień do plików na 777 to prawie zawsze zła rada . -1
David Foerster,

Zła rada, ale na razie zadziałało, więc głosuję.
David

2
@david 777 oznacza, że ​​każdy (w tym każdy przez Internet) może uzyskać dostęp do pliku, modyfikować go i usuwać. „zadziałało” nie jest dobrym pretekstem do otwarcia takiej krytycznej luki w systemie.
Mostafa Ahangarha 21.04.17

@david Rozbicie komputera na strzępy, pójście do sklepu i zakup nowego, a następnie zainstalowanie na nim najnowszej wersji Androida Studio również „działałoby”, ale jest to zła rada i nie należy go oceniać. Chodzi o to, że często istnieje wiele sposobów „rozwiązania” problemu, z których niektóre są „niewłaściwe”, a niektóre „właściwe”. Ta odpowiedź jest prawie na pewno niewłaściwa.
Jon Bentley,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.