The w
perintah menunjukkan sekelompok informasi tentang siapa yang login apa yang mereka lakukan.
Contoh dari Wikipedia :
$ w
11:12am up 608 day(s), 19:56, 6 users, load average: 0.36, 0.36, 0.37
User tty login@ idle what
smithj pts/5 8:52am w
jonesm pts/23 20Apr06 28 -bash
harry pts/18 9:01am 9 pine
peterb pts/19 21Apr06 emacs -nw html/index.html
janetmcq pts/8 10:12am 3days -csh
singh pts/12 16Apr06 5:29 /usr/bin/perl -w perl/test/program.pl
Saya tahu bahwa ia mendapat informasi 3 kolom pertama dari utmp dan wtmp , yang telah membaca izin untuk semua orang, tetapi dari mana ia mendapatkan informasi untuk waktu idle dan apa yang sedang dilakukan pengguna ?
ls -l $(which w)
menunjukkan bahwa w
program tidak memiliki set bit setuid dan sebagai pengguna biasa, saya tidak memiliki izin untuk melihat proses lain di /proc
.
w
perintahnya sepertinya tidak terlalu bervariasi antar varian.Jawaban:
Setidaknya di linux, karena setiap input pengguna pada terminal akan mengakses perangkat pengguna saat ini, ia melakukan panggilan stat () ke / dev / {tty, pts /}? * Dan memeriksa atime untuk pengguna yang masuk. Dari wc:
stat () hanya membutuhkan eksekusi (x) izin pada direktori induk untuk bekerja.
sumber
w.c
?