سه فایل wtmp,utmp و lastlog ها فایل هایی هستند که پس از وارد شدن هر کاربر به سیستم بروز می شوند. این فایل ها در مسیر var/run, /var/log/ قرار دارند و فایل های باینری هستند و نمی توان با دستور های متنی معمول آنها را خواند. این فایل ها، فایل های Logی هستند که اطلاعات مرتبط با Session ها و ورود کاربران را نگه داری می کنند. برای خواندن آنها از ابزار هایی مانند lastlog می توان استفاده کرد.
var/run/utmp/ : شامل کاربران حاضر در سیستم
var/log/wtmp/ : شامل کاربرانی که قبلن وارد شده اند.
var/log/lastlog/ : اطلاعاتی از Login های قبلی کاربران
چه کاربرانی در حال حاضر در سیستم هستند :
فایل utmp فهرست کاربرن حال حاضر در سیستم را نشان می دهد. این فایل باینریسیت و نمی توان با دستور cat آنها را خواند. دو دستور users و w را می توان برای دانستن اینکه کدام کاربران در سیستم هستند استفاده کرد. اگر هر یک از دستور ها را بدون هیچ پارامتری در خط فرمان اجرا کنید، فهرست کاربرن حاضر در سیستم نشان داده می شود.
دستور w اطلاعات کاملی از کاربران حاضر در سیستم را نشان می دهد. اطلاعاتی مانند نام کاربری، ترمینال استفاده شده، آدرس ماشین راه دور و … اطلاعاتی که دستور w نشان می دهد :
نام کاربری (Username)
شماره ترمینال(tty) مورد استفاده
آدرس ماشین راه دور(From)
زمان وارد شدن کاربر به سیستم( @Loging)
مدت زمان بی کاری یا IDLE Time
میزان پردازنده استفاده شده همه ی فرایند های مربوط به ترمینال(tty) یا JCPU
میزان پردازنده استفاده شده توسط فرایند کنونی یا PCPU
دارای چندین option است که مهمترین آنها :
s- : مخفف Short Output میزان استفاده پردازنده را نشان نمی دهد.ستون های JCPU و PCPU را نشان نمی دهد.
h- : خط اول خروجی Header نام دارد و اطلاعاتی همچون زمان شروع کار سیستم،چه مدت سبستم در حال کار است یا زمان UP بودن سیستم،تعداد کاربرانی که در سیستم هستند(به سیستمLogin کرده اند).این خط مشابه خروجی دستور uptime است و با سوئیچ h- دیگر نشان داده نمی شود.
دستور w :
و خروجی زیر :
دستور who،مانند دستور بالا اطلاعات کاربرانی که در حال حاضر به سیستم Loging کرده اند را نشان می دهند . خروجی آن شامل : نام کاربری،شماره tty،تاریخ و زمان و آدرس ماشین راه دور است.
چگونه فهمید آیا کاربر خاصی در حال حاضر در سیستم است یا نه؟
از دستور grep و با فرمت زیر می توان فهمید که آیا کاربری خاص در حال حاضر در سیستم هست یا نه. فرمت کلی آن به شکل زیر است و باید بجای USER_NAME نام دلخواه را نوشت.
خواندن فایل lastlog : فایل lastlog اطلاعات آخرین Login ها به سیستم را نشان می دهد. این فایل از نوع باینریست و باید با دستور lastlog خوانده شود.
نویسنده نامی امیر
var/run/utmp/ : شامل کاربران حاضر در سیستم
var/log/wtmp/ : شامل کاربرانی که قبلن وارد شده اند.
var/log/lastlog/ : اطلاعاتی از Login های قبلی کاربران
چه کاربرانی در حال حاضر در سیستم هستند :
فایل utmp فهرست کاربرن حال حاضر در سیستم را نشان می دهد. این فایل باینریسیت و نمی توان با دستور cat آنها را خواند. دو دستور users و w را می توان برای دانستن اینکه کدام کاربران در سیستم هستند استفاده کرد. اگر هر یک از دستور ها را بدون هیچ پارامتری در خط فرمان اجرا کنید، فهرست کاربرن حاضر در سیستم نشان داده می شود.
کد PHP:
users
OUTPUT : user01 user02 user03 user04
نام کاربری (Username)
شماره ترمینال(tty) مورد استفاده
آدرس ماشین راه دور(From)
زمان وارد شدن کاربر به سیستم( @Loging)
مدت زمان بی کاری یا IDLE Time
میزان پردازنده استفاده شده همه ی فرایند های مربوط به ترمینال(tty) یا JCPU
میزان پردازنده استفاده شده توسط فرایند کنونی یا PCPU
دارای چندین option است که مهمترین آنها :
s- : مخفف Short Output میزان استفاده پردازنده را نشان نمی دهد.ستون های JCPU و PCPU را نشان نمی دهد.
h- : خط اول خروجی Header نام دارد و اطلاعاتی همچون زمان شروع کار سیستم،چه مدت سبستم در حال کار است یا زمان UP بودن سیستم،تعداد کاربرانی که در سیستم هستند(به سیستمLogin کرده اند).این خط مشابه خروجی دستور uptime است و با سوئیچ h- دیگر نشان داده نمی شود.
دستور w :
کد PHP:
w
کد PHP:
23:04:27 up 29 days, 7:51, 3 users, load average: 0.04, 0.06, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user01 pts/0 dev-db-server 22:57 8.00s 0.05s 0.01s sshd: user01 [priv]
user02 pts/1 dev-db-server 23:01 2:53 0.01s 0.01s -bash
user03 pts/2 dev-db-server 23:04 0.00s 0.00s 0.00s w
کد PHP:
raj ttypV Jan 17 07:23 . (192.168.1.10)
ben ttypW Jan 17 07:42 . (192.168.1.11)
miku ttypX Jan 17 07:28 . (user-del-net-202.vsnl.net.in)
root ttypY Jan 17 04:11 . (196.15.183.151)
roomy ttyq0 Jan 17 07:32 . (org-rev-1.bsnl.net.in)
anita ttyq2 Jan 17 07:33 . (192.168.5.112)
gads ttyq3 Jan 17 07:40 . (gtw-1.nixcraft.in)
bencs ttyq5 Jan 17 07:44 . (dsl5.bsnl.co.in)
pol20um ttyq6 Jan 17 07:47 . (gtw-2.nixcraft.co.in)
از دستور grep و با فرمت زیر می توان فهمید که آیا کاربری خاص در حال حاضر در سیستم هست یا نه. فرمت کلی آن به شکل زیر است و باید بجای USER_NAME نام دلخواه را نوشت.
کد PHP:
who | grep USER_NAME
نویسنده نامی امیر