Différentes sorties pour `w`,` who`, `whoami` et` id`

9

Dans les plates-formes de ligne de commande en ligne, comme par exemple celle de Codecademy, lorsque je lance

for cmd in w who whoami id
do
    echo $cmd
    $cmd
    echo =========================
    echo "             "
done

Je reçois

w                              
00:52:54 up 8 days, 14:10,  0 users,  load average: 3.78, 2.98, 2.69      
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT       
=========================                            

who
=========================                                                 

whoami                          
ccuser                          
=========================                              
  
id
uid=1000(ccuser) gid=1000(ccuser) groups=1000(ccuser)     
=========================                   

Notez que seulement whoamiet idsortez quelque chose. Lorsque j'exécute la même chose sur mon ordinateur, je vois des résultats similaires pour toutes les commandes.

Pourquoi Codecademy n'affiche-t-il pas l'utilisateur pour wet who? En quoi ces commandes sont-elles différentes?

qui suis je
la source

Réponses:

13
  • id rapports
    • les pouvoirs actuels de son propre processus; ou
    • les informations d'identification d'un utilisateur nommé, telles que lues dans la base de données des comptes système .
  • whoami signale les informations d'identification actuelles de son propre processus.
  • whoet wsignaler la table des sessions de connexion actives à partir de la base de données de connexion .

BSD doco note que whoamifait un sous-ensemble du travail de id, et cela le idrend obsolète.

Un système n'a pas besoin d'avoir une table de sessions de connexion active. Sur les systèmes d'exploitation Linux et sur les BSD, si la table n'a pas été créée au démarrage, ou a été supprimée depuis, le système fonctionnera sans un. De plus, la connexion et la déconnexion ne le créent pas implicitement sur les systèmes d'exploitation Linux.

De plus, le tableau n'a pas besoin d'être lisible par les utilisateurs non privilégiés et ni la whoni la wcommande ne rapporteront cela comme une erreur.

Lectures complémentaires

JdeBP
la source