Разрешения на чтение / запись в каталоге / opt

54

Я установил Android Studio в свой каталог / opt без проблем и использую его. Однако недавно Android Studio сообщила мне об обновлении. Однако обновление не будет выполнено, поскольку говорится, что у него нет прав на чтение / запись в каталоге opt, где он установлен.

Кто-нибудь может порекомендовать лучшее средство для этой ситуации? Я бы предпочел не переносить мою установку в другой каталог. Я также не знаю, что я хочу изменить разрешения для каталога, хотя у меня может возникнуть желание сделать это для обновления, а затем вернуть его обратно.

Сообщение об ошибке:

Studio does not have write access to /opt/android-studio. Please run it by a privileged user to update
wayneeusa
источник
Как вы пытаетесь обновить? Как вы установили? ППА? Можете ли вы запустить Android Studio от имени пользователя root? т.е. sudo /opt/android-studioа потом обновлять?
Марк Кирби
1
Я полагаю, вы скопировали его в каталог / opt /. Я не буду рекомендовать держать его там, так что вам не придется беспокоиться о проблемах с разрешениями. Лучше всего использовать Umake для настройки среды разработки Android .
Гаян Виракутти
@markkirby Я скопировал его туда и использовал скрипт установки studio.sh Я бы запустил sudo, но studio.sh снова начинает установку. Удивлен, что я не вижу файл для запуска, чтобы просто запустить программу. Может быть, я должен gedit установочный скрипт, чтобы увидеть, где исполняемый файл ..
wayneeusa
Я рекомендую присвоить одному из ответов статус правильного ответа. в противном случае, это может ввести в заблуждение пользователей, которые придут к этому сообщению в будущем - если правильный ответ не был присужден через 1 год, это означает, что ни один из ответов не является правильным. Когда, на самом деле, оба эффективно решают проблему под рукой. я поднял ваш вопрос, кстати:)
Тони

Ответы:

99

Я изменил владельца каталога android studio с rootмоей userучетной записи, и это сработало. Вот команда, $USERкоторая сама изменится на вашего текущего активного пользователя:

sudo chown -R $USER:$USER /opt/android-studio
Латиф
источник
2
действительно работает для меня .. Мой 10-дневный поиск заканчивается здесь
Ранджит Кумар
8
Это будет работать, но есть ли недостатки в том, что все файлы и каталоги в некотором случайном подкаталоге / opt принадлежат случайному пользователю? Если установка находится в / opt, это может означать, что она предназначена для нескольких пользователей, поэтому можно ожидать, что другие пользователи в системе будут работать в студии. Может ли это быть проблемой?
Янник
1
использовал этот прием для настройки php-редактора, например Geany, в каталог / opt / lampp / htdocs установок xampp для записи и запуска на сервере xampp. hth ..
Steer360
ты человек !
Тахир Ясин
2
хороший момент @Yannick, но у кого в мире есть более одного пользователя на их настройке Ubuntu 😂
Брон Дэвис
8

Вы можете переместить каталог из /optдома, используя команду:

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

Или, чтобы дать разрешения, вы должны использовать chmod:

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

добавить разрешения для всех рекурсивных dir:

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

Посмотрите на мой ответ https://askubuntu.com/a/638799/150504, который немного объясняет о chmod и о том, как его использовать.

Maythux
источник
Нужно ли указывать конкретный исполняемый файл, который будет иметь это разрешение для папки? Я попробовал это с studio.sh, но я не думаю, что это фактический файл, который запускается, когда я нажимаю на иконку для запуска Android Studio.
Wayneeusa
не работал для меня. При создании каталога. попробовалsudo chmod +w -R /opt/android-sdk-linux
Дэвид
Сначала мы должны запустить studio.sh из каталога bin с помощью sudo, после чего отражается только разрешение на запись.
dev_ry
6

Я установил группу / opt / android-studio/ opt / android-sdk ) для пользователей и добавил разрешение на запись в группу.

В моем случае группа пользователей уже существовала. Но как подсказка:

пользователи sudo addgroup

Мне пришлось добавить моего пользователя в группу пользователей :

пользователи sudo adduser $ USER

Затем установите группу каталога:

sudo chown -R root: пользователи / opt / android-studio

Поскольку обновления должны записывать файлы:

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

Я использовал эту инструкцию один раз, я надеюсь, что я что-то не забыл

редактировать: таким образом, файлы не должны быть слишком широко доступными, но все еще могут использоваться отдельными пользователями

ArcticSnowSky
источник
1

У меня была похожая проблема с Rubymine.

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

у меня тоже работает, но может быть опасно менять права доступа в системных папках. Вероятно, лучше просто запустить установку один раз от имени пользователя root, чтобы разрешить обновление. например.

sudo updatedb && sudo locate rubymine.sh
sudo /path/to/rubymine.sh 
Bertrandwasright
источник
Я тоже! Но когда я пробую ваше решение, оно снова запрашивает информацию о лицензии, поэтому я не уверен, что делать в этот момент ... вставить его снова? Я не хочу испортить мои условия лицензии ...
mltsy
-1

Я получаю ту же ошибку. Выполнение следующей команды из терминала решило проблему.

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

Вам не нужно находиться в том же каталоге, чтобы выполнить команду.

Тахир Хан
источник
-2
sudo chmod -R 777 your_android_studio_location_path/

Например (в моем Ubuntu 16.04):

sudo chmod -R 777 /home/igor/Android/
Игорь Осипов
источник
7
Установка масок разрешений файлов на 777 - это почти всегда плохой совет . -1
Дэвид Фёрстер
Это плохой совет, но на данный момент это работает, так что я голосую.
Дэвид
2
@david 777 означает, что любой (включая кого-либо через Интернет) может получить доступ, изменить и удалить файл. «это сработало» не является хорошим поводом, чтобы открыть такую ​​критическую уязвимость для вашей системы.
Мостафа Ахангарха
@ david Разорвать ваш компьютер на части, пойти в магазин и купить новый, а затем установить на него последнюю версию Android Studio - это тоже «работает», но это плохой совет, и за ним не стоит голосовать. Дело в том, что часто есть несколько способов «решить» проблему, некоторые из которых являются «неправильным», а некоторые - «правильным». Этот ответ почти наверняка неправильный путь.
Джон Бентли