Різні виходи для `w`,` who`, `whoami` та` id`


9

На платформах командного рядка в Інтернеті, як, наприклад, на Codecademy, коли я запускаю

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

я отримав

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)     
=========================                   

Зауважте, що тільки whoamiі idвиведіть щось. Коли я запускаю одне і те ж на своєму комп’ютері, я бачу однакові результати для всіх команд.

Чому Codecademy не відображає користувача для wта who? Що відрізняється від цих команд?

Відповіді:


13
  • id звіти
    • поточні дані власного процесу; або
    • облікові дані названого користувача, як прочитані з бази даних системних облікових записів .
  • whoami звітує про поточні дані власного процесу.
  • whoі wповідомляти про таблицю активних сеансів входу з бази даних входу .

BSD doco зазначає, що whoamiвиконує підмножину завдання idта idробить її застарілою.

Система не повинна мати активну таблицю сеансів входу. В операційних системах Linux і на BSD, якщо таблиця не була створена під час завантаження або була видалена з того часу, система буде працювати без неї. Більше того, вхід у систему та вихід із них неявно не створюють її в операційних системах Linux.

Крім того, таблицю не потрібно читати непривілейованими користувачами, і ні команда whoні wкоманда не повідомлять про це як про помилку.

Подальше читання

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.