Pode haver duas coisas acontecendo aqui:
-
Propriedade : os arquivos localizados no diretório pessoal do usuário podem pertencer a
root, quando eles devem pertencer ao usuário. -
Localização : os arquivos podem estar localizados no diretório pessoal de
root(/root) quando eles devem estar localizados no diretório pessoal do usuário. (O OP descobriu isso, mas aceitou essa resposta, então eu a acrescentei para incluir isso em benefício de outras pessoas que estão enfrentando esse problema.)
Como fixar a propriedade
sudo eclipse executa o Eclipse como root , mas ainda usa o seu (isto é, não root 's) diretório home para salvar seus arquivos. Como ele é executado como root , os arquivos criados são de propriedade por root , e os usuários que não sejam root não podem acessá-los. O resultado é que, se você executar sudo eclipse uma vez, o Eclipse só poderá ser executado em sudo eclipse , até que o problema seja corrigido.
Este não é um problema permissões , é um problema propriedade , e a solução é retomar a propriedade dos arquivos e pastas afetados. Geralmente é seguro ser o proprietário de todos os arquivos dentro de sua pasta pessoal. Então, com o Eclipse não em execução, execute este comando:
sudo chown -R $USER:$USER ~
$USER será expandido pelo shell para seu nome de usuário, para que você possa executá-lo exatamente como está. Como alternativa, se você quiser substituir $USER pelo seu nome de usuário real (nesse caso, engine ), isso também funcionará.
Como esse comando funciona:
-
chowné o comando para alterar a propriedade de arquivos e diretórios. li> -
~é uma abreviação de shell para seu diretório inicial. -
-Rsignifica que não é apenas alterar a propriedade do seu diretório inicial, mas que a operação é aplicar recursivamente a todos os arquivos contidos em qualquer lugar dentro do seu diretório pessoal. - O primeiro
$USERsignifica que você será o proprietário dos arquivos. O segundo$USER(após o:) significa que o grupo do usuário (o grupo criado com sua conta de usuário, para ser o proprietário do grupo padrão dos seus arquivos) será o proprietário do grupo.
Para referência futura:
- Se você precisar executar um aplicativo gráfico como
root, use um gráficosudofrontend comogksu/gksudooukdesudo. Isso define a variável de ambiente$HOMEcomo% home/root-root. (Também faz uma cópia de~/.Xauthority.) - No entanto, é melhor não executar aplicativos complexos como o Eclipse ou o Firefox como
root, por motivos de segurança. Alguns utilitários gráficos devem ser executados comorootpara funcionar, mas o Eclipse não é uma ferramenta de administração e você nunca deve precisar executá-lo comoroot. Se você fizer, algo está errado.
Localização de correção
Como @Engine escreveu:
The problem wasn't the whole directory, but only the folder
/toolsinandroid-sdks. I copied it from the root folder and then I gave my user the ownerships rights with:chown -R $USER:USER ~
Isso significa que, quando eclipse foi executado como root , ele tinha (pelo menos em algum momento) usado o diretório base de root (não o diretório base do usuário) e o Android SDK foi armazenado dentro do diretório pessoal do root .
- Ou o SDK do Android pode ter sido instalado manualmente como
root.
Para o benefício de outras pessoas com este problema:
-
A pasta
toolspode ser copiada de dentro de/rootcom:sudo cp -R /root/android-sdks/tools ~/android-sdks/ -
Ou você pode mover a pasta
tools(em vez de copiar) com:sudo mv /root/android-sdks/tools ~/android-sdks/
Em seguida, corrija a propriedade conforme descrito acima. Ou apenas para a pasta tools realocada, com:
sudo chown -R $USER:$USER ~/android-sdks/tools