Estoy tratando de encontrar una manera de determinar el nombre de usuario del usuario de shell actual desde dentro de un shell / terminal en un dispositivo Android.
El entorno Android que tengo en /system/bin
y /system/xbin
no tiene el sistema unix user
mando. En general, parece que el concepto no existe del todo en Android, pero al menos, en mi dispositivo rooteado, hay un usuario root
y también hay grupos como shell
y everybody
, basándose en los permisos de los archivos del sistema.
Los antecedentes son los siguientes:
Quiero dirigir una ssh
(también instalé una versión de OpenSSH) en el Android que utiliza un private key
. La clave tiene permisos de archivo y estos son requeridos para ser restrictivos por OpenSSH por una buena razón (el grupo UNIX del archivo no debe tener permisos para acceder a la clave, sólo el propietario).
Como sólo conozco al usuario root
Puedo establecer el propietario de la llave como root
y ejecutar ssh
como Root. Sin embargo, no quiero ejecutar ssh
como root.
Estoy emitiendo el comando shell desde Automate
que tiene esa opción. Aparentemente, es posible ejecutar el comando sin permisos de Root. Sin embargo, si añado el archivo de claves al ssh
no puede acceder al archivo que es accesible sólo por root
. Por lo tanto, me gustaría establecer el propietario en los permisos de archivo UNIX de la clave para el usuario de shell utilizado por Automate
pero no sé cómo averiguar de quién se trata.
EDITAR:
~# grep automate /data/system/packages.list
com.llamalab.automate 10106 0 /data/user/0/com.llamalab.automate default:targetSdkVersion=24 3002,3003,3001
Supongo que 10106
es el UID, pero ¿es un valor estático? Si es así, ¿podría añadir una línea a /etc/passwd
utilizando adduser
¿comando desde busybox o Termux?