Autorizzazioni di lettura / scrittura nella directory / opt


54

Ho installato Android Studio nella mia directory / opt senza intoppi e lo sto usando. Recentemente, però, Android Studio mi ha informato di un aggiornamento. Non eseguirà l'aggiornamento, tuttavia, poiché afferma che non dispone delle autorizzazioni di lettura / scrittura nella directory opt in cui è installato.

Qualcuno può raccomandare il miglior rimedio per questa situazione? Preferirei non spostare la mia installazione in un'altra directory. Inoltre non so che voglio cambiare le autorizzazioni sulla directory, anche se potrei essere tentato di farlo per l'aggiornamento, quindi ripristinarlo.

Messaggio di errore:

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

Come stai tentando di aggiornare? Come hai installato? PPA? Puoi eseguire Android Studio come root? cioè sudo /opt/android-studioe quindi aggiornare?
Mark Kirby,

1
Immagino che tu l'abbia copiato nella directory / opt /. Non consiglierò di tenerlo lì, quindi non devi preoccuparti dei problemi di autorizzazione. È meglio usare umake per configurare il tuo ambiente di sviluppo Android .
Gayan Weerakutti,

@markkirby L'ho copiato lì e ho usato lo script di installazione studio.sh che avrei eseguito su sudo, ma studio.sh riavvia l'installazione. Sorpreso dal fatto che non vedo un file da eseguire per avviare il programma. Forse dovrei modificare lo script di installazione per vedere dove si trova l'eseguibile ..
Wayneeusa,

raccomando di assegnare a una delle risposte lo stato di risposta corretta. in caso contrario, potrebbe essere fuorviante per gli utenti che verranno da questo post in futuro - se non è stata assegnata una risposta corretta 1 anno dopo, significa che nessuna delle due risposte è corretta. Quando, infatti, entrambi risolvono efficacemente il problema in questione. Ho valutato la tua domanda, BTW:)
tony gil

Risposte:


99

Ho cambiato il proprietario della directory di Android Studio dal rootmio useraccount e ha funzionato. Ecco il comando, dove $USERcambierà da solo al tuo attuale utente attivo:

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

2
funziona davvero per me .. I miei 10 giorni di ricerca finiscono qui
Ranjith Kumar,

8
Funzionerà, ma ci sono degli svantaggi nell'avere tutti i file e le directory in una sottodirectory casuale di / opt di proprietà di un utente casuale? Se l'installazione è in / opt, ciò potrebbe significare che è destinato a più utenti, quindi ci si potrebbe aspettare che altri utenti sul sistema eseguano Studio. Potrebbe essere un problema in qualche modo?
Yannick,

1
usato questo trucco per configurare l'editor php come Geany nella directory / opt / lampp / htdocs delle installazioni di xampp per scrivere ed eseguire nel server xampp. hth ..
Steer360,

tu sei l'uomo !
Tahir Yasin,

2
buon punto @Yannick, ma chi nel mondo ha più di un utente nella configurazione di Ubuntu 😂
Bron Davies

8

Puoi spostare la directory da /optcasa tua usando comand:

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

O per dare le autorizzazioni devi usare chmod:

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

per aggiungere autorizzazioni a tutti i dir ricorsivi:

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

Dai un'occhiata alla mia risposta https://askubuntu.com/a/638799/150504 che spiega un po 'di chmod e come usare


Devo specificare il file eseguibile specifico che avrà questa autorizzazione per la cartella? L'ho provato con studio.sh, ma non penso che sia il file reale in esecuzione quando faccio clic sull'icona per eseguire Android Studio.
Wayneeusa,

non ha funzionato per me. Quando si crea una directory. provatosudo chmod +w -R /opt/android-sdk-linux
david

Per prima cosa dobbiamo eseguire studio.sh dalla directory bin usando sudo, quindi viene riflessa solo l'autorizzazione di scrittura.
dev_ry,

6

Ho impostato il gruppo di / opt / android-studio (e / opt / android-sdk ) per gli utenti e ho aggiunto il permesso di scrittura al gruppo.

Nel mio caso, gli utenti del gruppo esistevano già. Ma come suggerimento:

utenti sudo addgroup

Ho dovuto aggiungere il mio utente al gruppo di utenti :

sudo adduser $ USER utenti

Quindi impostare il gruppo della directory:

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

Perché gli aggiornamenti devono scrivere i file:

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

Ho usato queste istruzioni una volta, spero di non aver dimenticato qualcosa

modifica: in questo modo i file non devono essere troppo largamente accessibili, ma comunque utilizzabili dagli utenti selezionati


1

Ho avuto un problema simile con Rubymine.

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

ha funzionato anche per me, ma può essere pericoloso cambiare le autorizzazioni nelle cartelle di sistema. Probabilmente meglio solo eseguire l'installazione una volta come root per consentire l'aggiornamento. per esempio.

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

Anche a me! Ma quando provo la tua soluzione, chiede di nuovo le informazioni sulla licenza, quindi non sono sicuro di cosa fare a quel punto ... inseriscilo di nuovo? Non voglio
sbagliare i

-1

Stavo ottenendo lo stesso errore. L'esecuzione del comando seguente dal terminale ha risolto il problema.

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

Non è necessario trovarsi nella stessa directory per eseguire il comando.


-2
sudo chmod -R 777 your_android_studio_location_path/

Ad esempio (nel mio Ubuntu 16.04):

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

7
L'impostazione delle maschere di autorizzazione dei file su 777 è quasi sempre un cattivo consiglio . -1
David Foerster,

È un cattivo consiglio, ma per ora ha funzionato, quindi ho votato.
David,

2
@david 777 significa che chiunque (incluso chiunque tramite Internet) può accedere, modificare ed eliminare il file. "ha funzionato" non è una buona scusa per aprire una vulnerabilità così critica al tuo sistema.
Mostafa Ahangarha,

@david Distruggere il tuo PC a pezzi, andare al negozio e acquistarne uno nuovo, quindi installare l'ultima versione di Android Studio su di esso "funzionerebbe" ma è un cattivo consiglio e non dovrebbe essere votato. Il punto è che spesso ci sono molti modi per "risolvere" un problema, alcuni dei quali sono "sbagliati" e altri sono "giusti". Questa risposta è quasi certamente nel modo sbagliato.
Jon Bentley,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.