Permissões de Pastas

by Paco Pomet / from beautifuldecay.com

Forma de Permissão

No Android, as pastas e arquivos suas permissões de acesso seguem a mesma regra do linux. Se através de nossa IDE visualizarmos as pastas que estão dentro de um emulador por exemplo, veremos que cada pasta ou arquivo possuem permissões como “drwxrwxrwx”. Dentro dessa cadeia de caracteres, o primeiro caracter “d” indica que é um diretório, caso fosse um arquivo esse caracter receberia um “-“.Seguindo, cada conjunto de 3 caracteres seguintes estão relacionados a um tipo, sendo na ordem usuário, grupo e todo mundo(world), ou seja, d = diretório, rwx = usuário, rwx = grupo e rwx =  world. Mas o que siginifica rwx? O r significa leitura, w significa escrita e o x, execução. Então, o elemento específicado é um diretório onde o usuário pode ler, escrever e executar assim como o grupo e todo mundo. Caso não haja alguma permissão pra algum tipo, é colocado o caracter “-” no lugar do caracter em questão, por exemplo, “-rwxrw-r–” onde verificamos que é um arquivo que o usuário tem permissão de ler, escrever e executar, o grupo tem permissão apenas de ler e escrever e todo mundo tem a permissão apenas de ler.

World X

Como padrão no Android, todo diretório de pacote, ou o diretório relacionado ao pacote da sua aplicação, por exemplo “br.com.tassioauad.meuprojeto”, possui permissão para todo mundo igual a X. Isso significa que qualquer uma aplicação pode buscar e listar os arquivos no diretório e, sendo assim, qualquer aplicação tem acesso a esse nível de diretório umas das outras. Abaixo desse diretório, descendo a hierarquia, o nível de acesso é estipulado pela própria aplicação e não mais segue esse padrão. Por exemplo, quando um aplicativo cria arquivos como o referente ao SharedPreferences, eles são propriedades do usuário e não possuem permissão para todos, e caso queira que isso seja mudado, é preciso alterar as permissões. O Android não recomenda o compartilhamento de dados através de permissões para todos. Caso queira trocar informações entre aplicações, deve-se usar um provedor de conteúdo  (ContentProvider).

ID do Usuário (UID)

Além disso há uma terceira maneira de se compartilhar dados entre aplicações, através do compartilhamento de ID. Como no linux, o Android possui permissões para cada usuário e cada grupo de usuário, como já visto, e também há o usuário root. A diferença é que no Android, cada aplicação possui o seu próprio usuário e, por isso, uma aplicação não pode naturalmente acessar arquivos e diretórios do outro, a menos q seja dado permissão para todos como visto acima ou a menos que eles compartilhem o mesmo ID do usuário(UID), ou seja, pertençam ao mesmo usuário. O compartilhamento de UID é feito no arquivo AndroidManifest.xml através do atributo android:sharedUserId=”string” na tag .

Deixe um comentário