25 votos

No hay permisos para que Termux acceda al almacenamiento interno, incluso para leer.

Usando el programa de emulación de terminal termux (https://termux.com), escribo el siguiente comando:

ls /sdcard

Recibo el siguiente error:

ls: can't open '/sdcard': Permission denied

Al darme cuenta de que el directorio /sdcard en Android es un enlace simbólico, intenté encontrar la ubicación del directorio real -- descubriendo que no solo es un enlace simbólico, sino un enlace simbólico a otro enlace simbólico, y el directorio real es /storage/emulated/0

Entonces finalmente, escribí:

ls -ld /storage/emulated/0

El resultado que obtuve fue:

drwxrwx--x   63 root     sdcard_r      4096 Aug 10 12:04 /storage/emulated/0

En resumen --- no sé si termux solía ejecutarse con los permisos del grupo sdcard_r o si los permisos o solían permitir lectura-escritura -- pero necesito saber cuál de los dos solía ser y cómo arreglar las cosas - porque poder acceder al contenido de la tarjeta SD interna es bastante crítico.

No, mi dispositivo no está rooteado, ni planeo hacerlo - así que no puedo dar ninguna información que tendría que rootea el dispositivo para obtener. Sin embargo, nunca antes el hecho de no estar rooteado me impidió tener acceso de lectura al directorio /sdcard - así que esto es nuevo (y perturbador).

Es cierto - han pasado unos meses desde la última vez que intenté hacer esto - pero esta nueva limitación de Android realmente obstaculiza la usabilidad de termux y quién sabe qué más -- ya que necesito poder acceder a los archivos que están en mi tarjeta SD. (Todavía puedo hacer mucho, incluso sin permisos de escritura, pero estoy prácticamente atascado si no tengo permisos de lectura, como es actualmente el caso.)

1 votos

Hmm, parece que tiene el permiso READ_EXTERNAL_STORAGE, así que debería tener acceso.

3 votos

Sí --- pero aparentemente se había apagado. Me di cuenta cuando fui a Preferencias del Sistema > General > Aplicaciones > Termux ---- y encontré que había un interruptor para el acceso a los archivos que de alguna manera se había apagado. Huelga decir que lo volví a encender, y el problema se solucionó. Por supuesto, la crisis inmediata ha terminado --- pero esto aún plantea la pregunta de qué lo causó apagarse en primer lugar. (Sé que yo nunca hice eso.)

0 votos

Tuve el mismo problema, y tu respuesta aquí lo solucionó para mí. Aquí está lo que creo que sucedió: Android 7 ahora permite denegar permisos (¡bien!), pero, en el caso de Termux, por alguna razón, no solicita permiso como lo hacen otros programas. Entonces, el problema no es que de alguna manera se haya desactivado, sino que nunca se activó. Aunque esto es especulación.

15voto

Siguiendo el wiki de Termux para ejecutar termux-setup-storage lo solucionó para mí, como sugirió fornwall.

Luego reinicia Termux.

5voto

Dustin Puntos 398

Las versiones más recientes de Android requieren que las aplicaciones pidan permiso durante el tiempo de ejecución. Es posible que ya hayas notado esto. Un ejemplo es Chrome pidiendo el permiso de Almacenamiento cuando intentas descargar algo por primera vez. Para Termux, esto es un problema. Los permisos por defecto son "no permitidos", así que cuando Termux necesita un permiso para una tarea, porque Termux no ha sido actualizado para solicitar estos permisos, intenta realizar la tarea de todos modos y arroja un error como resultado. Desafortunadamente, el(los) desarrollador(es) tienen que arreglar esto por sí mismos. Afortunadamente, Android te brinda formas de gestionar los permisos de las aplicaciones manualmente. Hasta que el(los) desarrollador(es) actualicen Termux en consecuencia, esta es probablemente la única forma.

Paso 1: Ir a la página de Información de la aplicación de Termux

Existen varios métodos para llegar a esta página. Debido a que diferentes teléfonos pueden tener comportamientos diferentes, incluí todos los que conozco.

Método 1: Usando el menú de tareas múltiples

  1. Abre Termux.
  2. Pulsa el botón de tareas múltiples para abrir el menú de tareas múltiples. Este debería estar al lado del botón de inicio a la izquierda.
  3. En la lista de aplicaciones, Termux debería ser la primera. Toca y mantén presionado sobre su icono.

    En algunos teléfonos, ya estarás en la página de información. En otros teléfonos, en su lugar verás que la caja de la aplicación de Termux cambia en la parte superior, con un icono de información () apareciendo en algún lugar. Otros teléfonos pueden mostrarte un menú contextual con una opción de "Información de la aplicación". En ambos casos, toca sobre estos.

Método 2: Usando el panel de notificaciones

  1. Abre Termux. Quieres que aparezca la notificación de Termux.
  2. Desliza hacia abajo en el panel de notificaciones y encuentra la notificación de Termux.
  3. Intenta uno de los siguientes:

    • Desliza la notificación hacia la izquierda o hacia la derecha y busca una rueda dentada () o un icono de información () y toca sobre él. No puedes desestimar la notificación de Termux, así que no te preocupes por eso.
    • Toca y mantén presionada la notificación y busca una rueda dentada (), un ícono de información (), o un menú contextual con una opción de "Información de la aplicación" y toca sobre él.
    • Busca el icono y/o nombre de la aplicación. Es posible que tengas que deslizar hacia abajo en la notificación. Toca y mantén presionado sobre él. Una rueda dentada (), un ícono de información (), o un menú contextual pueden aparecer. Toca en consecuencia.

Método 3: Usando el Administrador de aplicaciones

  1. Ve a ajustes>aplicaciones.
  2. Busca una opción etiquetada "Administrador de aplicaciones" o similar. Parece depender de tu dispositivo.
  3. Busca la entrada de Termux y toca sobre ella. Es posible que tengas que cambiar tu filtro a "aplicaciones instaladas" o "aplicaciones descargadas".

Paso 2: Cambiar permisos

Deberías estar en una página con el nombre, icono y número de versión de Termux con dos botones etiquetados como "Desinstalar" y "Forzar detención." debajo deberían haber varias otras opciones.

  1. Busca una opción etiquetada como "Permisos" (puede que necesites desplazarte). Toca sobre ella.
  2. Debería haber una entrada para el permiso de Almacenamiento. Actívalo haciendo clic en el interruptor junto a él. Si el permiso de Almacenamiento no está listado, usa un comando relacionado con el almacenamiento en Termux para obtener un error de permiso denegado y vuelve.

Probando el cambio

Ahora has dado acceso a Termux a tu almacenamiento. Puedes probar esto con el siguiente comando:
ls /sdcard/
Si no recibes un error de permiso denegado, ¡funcionó! No deberías necesitar hacer esto nuevamente a menos que reinstales Termux.

0 votos

Es posible que necesites detener y reiniciar la aplicación Termux para que los permisos surtan efecto.

2voto

Nathan Smith Puntos 11

Es julio de 2017 y tuve el mismo problema, busqué en Google y llegué aquí. El comentario de Matthew Read señaló el camino hacia la solución, pero no hay una respuesta que lo explique claramente, así que aquí está el resumen:

Termux no solicita permiso para el sistema de archivos en la instalación, por lo que debes activarlo a través de Configuración => Aplicaciones => Termux => Permisos

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