14 votos

¿Por qué se necesitan permisos de superusuario para acceder / partición de datos?

La cuenta predeterminada es usuario normal, y la usé para instalar el APK de Google Play Store (a /data ). Luego se abrió Google Play Store usando los permisos de mi usuario actual, y se usa para descargar e instalar otros APK a /data . Eso significa que tengo acceso completo a la partición /data .

¿Por qué las aplicaciones del administrador de archivos no pueden ver esa partición sin permisos de root?

15voto

Jack Wade Puntos 231

Primero para aclarar sólo root (UID 0) no es suficiente para conseguir el acceso a la /data al menos desde Android 5. Control de Acceso discrecional basado en UNIX tradicional Uid/Gid solo no cumplir con las necesidades de los modernos complejos sistemas operativos como Android. DAC es complementado por el Control de Acceso Obligatorio (MAC); SELinux en el caso de Android. Por tanto, para acceder /data su usuario o proceso debe tener una política definida explícitamente.

Google Play Store abrió en mi actual permiso de usuario

Esto no es correcto. Concepto de "usuarios" es diferente en Android que en normal Linuxes. En Android cada aplicación se le asigna un único UID (de gama 10000 a 19999) y se ejecuta en su propio usuario. Los privilegios se controlan a través de Android del permiso marco. En el sistema de archivos de nivel cada aplicación que está enlazado a un par de directorios (privadas y compartidas), que también sujeto a algunos de los permisos. Para más detalles, ver Donde Android apps store de datos?

Así que no hay ningún ser humano que se podrían ejecutar todos sus programas en el marco de usuario actual/UID.

descargado e instalado otros archivos Apk a /datos. Eso significa que tengo acceso completo a la /data de la partición.

Play Store no instale apk de archivos, que sólo realiza algunas verificaciones y descarga el archivo con el Gestor de Descarga (com.android.providers.downloads) que se ejecuta en su propio LÍQUIDO. Instalación de la aplicación a /data/app y otros directorios relevantes está principalmente a cargo de Administrador de Paquetes de servicio se ejecuta bajo UID 1000 (system_server proceso) en la pila Java y installd que se ejecuta bajo UID 0 en los nativos de la pila. Instalador de paquetes (com.android.packageinstaller) es la aplicación del sistema de ejecución en virtud de su propia UID - que proporciona la interfaz de usuario para (des)instalar aplicaciones de forma manual. Ver más detalles aquí. Del mismo modo todas las aplicaciones y procesos tienen sus propios contextos de SELinux para permitir el acceso a los procesos necesarios y archivos. Hay una serie de APIs y IPCs involucrados en todo este proceso.

¿Por qué es necesario el permiso de superusuario para acceder a /data de la partición?

En pocas palabras, es la protección. Como usted necesita acceso root para cambiar /etc directorio en sistemas operativos Linux y como se necesitan derechos de Administrador para abrir el Editor del Registro de Windows. Esta restricción es para aislar y proteger todas las aplicaciones del proceso en un ambiente confinado. Otro de DAC y MAC, otros fenómenos como Linux capacidades, espacios de nombres, cgroups y seccomp filtros se utilizan también para esta zona de pruebas. Se recurre también a las aplicaciones el acceso limitado a los recursos y hace que la auditoría fácil.

Algunas razones comunes de mi respuesta a ¿Cómo puedo acceder a $HOME/storage fuera de Termux?:

/data de partición también contiene la configuración del sistema, incluyendo datos sensibles como contraseñas de bases de datos (aunque no se guardan como texto sin formato), contactos, registros de llamadas y aplicaciones estadísticas. Por lo /data no está accesible sin root con el fin de:

  • Proteger las aplicaciones de los datos de otras aplicaciones
  • Proteger los datos del sistema y la configuración de las malas aplicaciones y malware
  • Aislar a los usuarios/perfiles de otros usuarios/perfiles
  • No deje que las aplicaciones de acceso de almacenamiento compartido sin permiso de Almacenamiento
  • Hacer cumplir las Api de Android marco para que las aplicaciones no pueden utilizar los recursos del sistema y de lectura/manipular la información del dispositivo y la configuración sin los permisos adecuados

Y, posiblemente, hay otras razones. Para más detalles, ver Son múltiples usuarios protegidos de cada uno de los otros de manera diferente que las apps?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X