Je recherche des commandes similaires dans le shell Android - comme elles sont utilisées dans Linux comme ces commandes - que puis-je taper dans le terminal Android pour :
w
qui
whoami
?
Merci.
Je recherche des commandes similaires dans le shell Android - comme elles sont utilisées dans Linux comme ces commandes - que puis-je taper dans le terminal Android pour :
w
qui
whoami
?
Merci.
Commandes Linux w
y who
lire les informations de connexion depuis le fichier /var/run/utmp
. Les enregistrements/journaux de connexion traditionnels de Linux sysV comme utmp , wtmp
, btmp
y lastlog
sont définis et lus par certains programmes qui utilisent GNU libc (la bibliothèque C la plus utilisée sur les distributions Linux) et d'autres libc. Ces fichiers contiennent des informations sur les utilisateurs actuellement et précédemment connectés.
Cependant, il n'y a pas de concept de console Linux connexion sur Android car il n'est pas conçu pour les connexions d'utilisateurs multiples. Terminaux virtuels sont désactivés par défaut sur Android, init
ne démarre pas getty
et donc il n'y a pas de connexion aucun gestionnaire de connexion (comme logind
), non shell
au démarrage et aucune session utilisateur, et donc aucun fichier de connexion. Android démarre directement à l'interface graphique. D'autres programmes CLI comme sshd
qui lisent/écrivent ces fichiers de connexion ne font pas non plus partie d'Android. Ainsi, la libc Bionic d'Android ne fournit pas les fonctions de utmp.h ni la hiérarchie des systèmes de fichiers ne contient /var/log
o /var/run
. Cependant, si un programme lié aux librairies standard de Linux est utilisé sur Android, il essaiera d'accéder à ces fichiers de connexion. Mais si un programme - comme w
, who
, users
, last
y lastlog
- est totalement dépendant de ces fichiers, il ne fonctionnera tout simplement pas. Vous pouvez utiliser une busybox telle que de yashdsaraf pour obtenir toutes ces commandes sur Android.
Commande Linux whoami
obtient l'UID (effectif) du processus en faisant un appel syscall geteuid directement au noyau, puis sur Linux, si possible, il résout l'ID en nom en utilisant des mécanismes de résolution de nom comme directement à partir de /etc/passwd, /etc/group ou via NSS, NSCD, etc. id
La commande fait en plus getgid
y getgroups
également. Ainsi, ces commandes fonctionnent sur Android comme prévu et - avec d'autres outils similaires logname
y groups
- font partie de coffre à jouets ; le choix d'Android pour un outil de ligne de commande Linux tout-en-un.
Bionic libc's fonctions d'enveloppement (que les applications utilisent effectivement via les API Android pour obtenir l'UID) et les syscalls du noyau sont également identiques comme c'est le cas avec les autres libc :
~# nm -C /system/lib64/libc.so | grep geteuid$
0000000000070d58 T geteuid
~# grep geteuid$ /proc/kallsyms
0000000000000000 T sys_geteuid
RELATION : COMMENT METTRE EN PLACE UN ENVIRONNEMENT DE LOGIN LINUX SUR Android
AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.
0 votes
Vous avez besoin de busybox ... Vous pouvez obtenir no Root busy box sur le play store.
0 votes
Ou copiez-le dans /data/tmp/busybox et définissez les permissions correctes.
0 votes
@Zillinium - busybox est disponible en tant que package dans termux ... attendez ... il n'y a que la commande wc et elle se bloque toute seule ! ?
1 votes
Toybox (livré avec Android depuis la sortie de Lollipop) est livré avec
whoami
.