J'essaie de trouver un moyen de déterminer le nom d'utilisateur de l'utilisateur actuel du shell à partir d'un shell / terminal sur un appareil Android.
L'environnement Android que j'ai dans /system/bin
y /system/xbin
n'a pas le caractère unix user
commande. Dans l'ensemble, il semble que le concept n'existe pas tout à fait sur Android, mais au moins, sur mon appareil enraciné, il y a une commande utilisateur. root
et il existe également des groupes tels que shell
y everybody
en fonction des permissions des fichiers du système.
Le contexte est le suivant :
Je veux lancer un ssh
(j'ai installé une version d'OpenSSH également) sur le système Android qui utilise une commande locale. private key
. La clé a des permissions de fichier et celles-ci sont requises pour être restrictives par OpenSSH pour une bonne raison (le groupe UNIX du fichier ne devrait pas avoir de permissions pour accéder à la clé, seulement le propriétaire).
Puisque je ne connais que l'utilisateur root
je peux définir le propriétaire de la clé comme étant root
et exécuter ssh
comme Root. Cependant, je n'ai pas vraiment envie d'exécuter ssh
en tant que racine.
Je lance la commande shell depuis l'intérieur Automate
qui dispose de cette option. Apparemment, il est possible d'exécuter la commande sans les autorisations Root. Cependant, si j'ajoute le fichier de clé à la section ssh
il ne peut pas accéder au fichier qui n'est accessible que par la commande root
. Ainsi, je voudrais définir le propriétaire dans les permissions de fichiers UNIX de la clé comme étant l'utilisateur du shell utilisé par Automate
mais je ne sais pas comment trouver qui c'est.
EDIT :
~# grep automate /data/system/packages.list
com.llamalab.automate 10106 0 /data/user/0/com.llamalab.automate default:targetSdkVersion=24 3002,3003,3001
Je suppose 10106
est l'UID, mais est-ce une valeur statique ? Si oui, puis-je ajouter une ligne à /etc/passwd
en utilisant adduser
à partir de busybox ou de Termux ?