لینوکس یک سیستم چند کاربره است؛ یعنی چندین کاربر می توانند از آن استفاده کنند. از همین رو در یک زمان هم می توانند کاربران وارد سرور شوند. لینوکس دارای دستوراتی است که ما به آنها دستورات پایشی (Monitoring) می گوییم. یک نوع از این دستورات برای نمایش افراد وارد شده به سرور لینوکس کاربرد دارند. شما به عنوان مدیر سرور شاید خواسته باشید بدانید همینک چه کسانی با استفاده از SSH وارد سرور شدند.
من در اینجا به شما سه دستور زیر را معرفی می کنم. هر کدام از این سه دستور را خود می توانید امتحان کنید و نتیجۀ آن را بررسی نمایید.
- w : اطلاعاتی راجع به کاربرانی که همینک وارد سیستم شدند، به همراه پردازش های شان را نشان می دهد.
- who : اطلاعاتی را راجع به کاربرانی که همینک وارد سیستم شدند نمایش می دهد.
- users : خروجی این دستور نام کاربرانی که همینک وارد سیستم شدند را به صورت تک خطی نمایش می دهد. این دستور اطلاعات را از پروندۀ var/run/utmp می خواند.
حالا وقت آن است که خط فرمان سرور لینوکس خود را باز کرده و دستورات زیر را یکی یکی وارد و نتیجه را بررسی کنید.
دستور w
این دستور یکی از دستورات پرکاربرد است. به همین دلیل هم باید ساده و مختصر باشد که هست. از یک حرف تشکیل شده و با زدن دستور w در خط فرمان نتیجه ای به مانند نمونۀ زیر به شما نمایش داده خواهد شد. البته به شرطی که تنها یک کاربر و آن هم شما درون سیستم باشید.
[root@jamal ~]# w ۰۰:۰۱:۱۷ up 0 min, ۱ user, load average: 0.14, 0.04, 0.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 ۱۰.۰.۲.۲ ۰۰:۰۱ ۰.۰۰s ۰.۰۵s ۰.۰۰s w
در ردیف اول این دستور، اطلاعات کلی راجع به سرور را به نام نشان می دهد. راجع به آنها قبلاً صحبت کردیم. مثلاً روبروی load average همان میانگین بار را نشان می دهد. یا در همین خط اول تعداد تمام کاربرانی که همینک وارد سرور شدند را نشان می دهد (۱user). اما خط دوم سر ستون های جدولی است که محتوای آن در خطوط دیگر آمده است. به سادگی موارد زیادی را از این دستور می تواند درک کرد.
از جمله اینکه این فرد با چه نام کاربری وارد شده است (USER)، با چه IP وارد شده است (FROM) و چه زمانی وارد شده است (LOGIN).
اما اگر خواسته باشید اطلاعات مربوط به یک کاربر خاص به شما نشان داده شود، کافی است نام کاربریِ آن کاربر را بعد از عبارت w وارد کنید.
[root@jamal ~]# w tom
دستور who
این دستور در تمامی سیستم های لینوکسی کار خواهد کرد و نتیجه ای به مانند دستور قبلی را دارد؛ اما با سبک و سیاق دیگر. اگر نتیجۀ این دستور را با دستور قبلی مقایسه کنید، حتماً خواهید فهمید که اطلاعات مربوط به هر کاربر به چه صورتی نمایش داده خواهد شد.
[root@jamal ~]# who root pts/0 ۲۰۱۷-۰۱-۳۰ ۰۰:۰۱ (۱۰.۰.۲.۲)
این دستور یک مشخصه با عنوان a هم دارد که اگر به همراه who استفاده گردد، هر نوع کاربری که درون سیستم وجود دارد و همینک در حال کار کردن است را خروجی می دهد.
[root@jamal ~]# who -a system boot ۲۰۱۷-۰۱-۳۰ ۰۰:۰۰ run-level 3 ۲۰۱۷-۰۱-۳۰ ۰۰:۰۰ LOGIN tty1 ۲۰۱۷-۰۱-۳۰ ۰۰:۰۰ ۱۲۶۰ id=1 LOGIN tty2 ۲۰۱۷-۰۱-۳۰ ۰۰:۰۰ ۱۲۶۲ id=2 LOGIN tty4 ۲۰۱۷-۰۱-۳۰ ۰۰:۰۰ ۱۲۶۶ id=4 LOGIN tty3 ۲۰۱۷-۰۱-۳۰ ۰۰:۰۰ ۱۲۶۴ id=3 LOGIN tty5 ۲۰۱۷-۰۱-۳۰ ۰۰:۰۰ ۱۲۶۸ id=5 LOGIN tty6 ۲۰۱۷-۰۱-۳۰ ۰۰:۰۰ ۱۲۷۷ id=6 root + pts/0 ۲۰۱۷-۰۱-۳۰ ۰۰:۰۱ . ۱۲۹۸ (۱۰.۰.۲.۲)
دستور users
همانطور که گفته شد، خروجی این دستور فقط نام کاربریِ حسابِ فردی است که همینک وارد سیستم شده است؛ آن هم همه درون یک خط.
[root@jamal ~]# users root
در بیشتر موارد که تنها شما هستید که دسترسی به SSH دارید و کس دیگری این دسترسی را ندارد، نتیجۀ این دستورات تنها باید یک مورد باشد و آن هم نام کاربری و اطلاعاتِ حساب شماست. در غیر این صورت اگر شخص دیگری را دیدید که وارد حساب SSH مربوطه شده است و نا آشنا است، باید تمهیدات لارم را بیاندیشید. مثلاً فوراً وی را از حسابش اخراج کرده و رمز عبور حساب را تغییر دهید و یا کلاً حساب را حذف کنید.
سلام
جمال عزیز دستت درد نکنه ، خیلی مفید بود