El registro de usuario regular de Android pierde información de grupo cuando su a otro usuario en una sesión ssh

Que estoy haciendo:

Emacs corre bien etc. Sin embargo, de esta manera no puedo conectarme a través de emacsclient al proceso emacs que se ejecuta bajo el usuario 10157. Esto es deseable, ya que no quiero iniciar dos procesos emacs, ya que quiero seguir trabajando con archivos que He abierto en emacs bajo usuario 10157.

Por lo tanto: $ su - 10157

Bien, puedo ejecutar emacs etc. Sin embargo, no puedo acceder a la web.

 $ ping -c1 google.com You must have internet permissions to use ping. Aborting. $ id uid=10157(10157) gid=10157(10157) groups=10157(10157) 

Así ya no estoy en el grupo 3003, necesario para el acceso a internet, además de otros grupos también.

¿Por qué este grupo de información obtener despojado, y cómo puedo remediar esto, para que pueda seguir accediendo a la web cuando su como este usuario en ssh?

Cuando ejecuto el comando:

 busybox --list 

No veo su en la lista.

 su --help 

Muestra Superuser.apk en el texto de ayuda. Significa que su es proporcionado por la aplicación Superusuario.

He seguido los pasos descritos por usted y yo podría su como otro usuario y todavía tiene permiso de Internet como se muestra a continuación.

terminal

Introduzca aquí la descripción de la imagen

Tengo las siguientes aplicaciones instaladas.

  • BusyBox v1.18.5-Stericson
  • Superusuario v3.0.7
  • Terminal Emulator v1.0.45
  • SSHDroid v1.9.6

Sugerencia : Creo que el problema es con su en su dispositivo. Usted puede intentar esto. https://play.google.com/store/apps/details?id=com.noshufou.android.su

Si sólo uso adb shell sin ejecutar SSHDroid todavía puedo su como otro usuario con permiso de Internet.

Introduzca aquí la descripción de la imagen

Nota: El comando BusyBox id no muestra siempre la información de los grupos.

Introduzca aquí la descripción de la imagen

De acuerdo con la página de manual estándar para su (desde una caja linux)

Cuando – se utiliza, debe especificarse como la última opción su. Las otras formas (-l y – logina) no tienen esta restricción.

Basado en eso, intente

 $ su 10157 - 

Probablemente estoy perdiendo algo aquí porque esto parece demasiado obvio, pero ¿por qué no sólo sudo -u 10157 'su programa emacs?

Usted todavía tendría acceso a la red y sus emacs estarían trabajando. O me he perdido algo importante?

Los permisos no son variables de entorno que se pueden heredar mediante su - .

Por otra parte, gid son codificados y sus asociaciones con cada uid APP no se puede cambiar después de la instalación.

10157 debería ser el uid de la aplicación DigiSSHd , por lo que podría intentar reconstruirlo después de cambiar el archivo AndroidManifest.xml para requerir el permiso adecuado.

Puedes encontrar algo útil aquí y aquí .

Lo mismo debería funcionar para BusyBox (ver aquí ).

Sin embargo, podría abrir algún agujero de seguridad al permitir el acceso a la red a través de dichas aplicaciones.

  • ¿Por qué la bomba de horquilla no bloqueó el androide?
  • Leer la salida del comando dentro de su proceso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.