مقدمه
در سیستمعامل لینوکس، هر چیزی یک فایل محسوب میشود: از اسناد متنی گرفته تا سوکتهای شبکه، دستگاههای سختافزاری و حتی پورتها.
مدیریت و بررسی این فایلهای باز برای تشخیص مشکلات، عیبیابی، یا حتی بررسیهای امنیتی اهمیت بسیار زیادی دارد.
یکی از ابزارهای کلیدی برای انجام این کار، دستور lsof است که نام آن مخفف عبارت List Open Files میباشد.
این ابزار به شما نشان میدهد که چه فایلهایی در حال حاضر توسط چه فرآیندهایی در سیستم باز هستند، کدام برنامهها از پورتهای خاص استفاده میکنند و حتی چه کاربری در حال استفاده از چه منبعی است.
بخش اول: مفهوم و کاربرد اصلی دستور lsof
دستور lsof اطلاعاتی جامع درباره فایلها و سوکتهای باز در سیستم ارائه میدهد.
هر برنامهای که در حال اجراست، فایلهایی را باز نگه میدارد:
- فایلهای متنی یا پیکربندی
- سوکتهای شبکه (TCP و UDP)
- pipeها، deviceها، و libraryها
بهطور ساده، lsof ابزاری است برای پاسخ به پرسشهایی مانند:
- کدام برنامه در حال استفاده از پورت 80 است؟
- چه کاربری فایل خاصی را باز کرده است؟
- چرا یک درایو یا فایل نمیتواند unmount شود؟
بخش دوم: ساختار کلی دستور
فرمت عمومی دستور به شکل زیر است:
lsof [options] [filename|directory|port]
نمونه ساده:
lsof /var/log/syslog
نمایش میدهد که چه فرآیندهایی فایل syslog را باز کردهاند.
بخش سوم: گزینههای پرکاربرد lsof
1. نمایش تمام فایلهای باز در سیستم
lsof
خروجی شامل فهرستی طولانی از همهی فایلهای باز در حال حاضر خواهد بود.
2. نمایش فایلهای باز توسط یک کاربر خاص
lsof -u mahdi
فقط فایلهایی که توسط کاربر «mahdi» باز شدهاند را نمایش میدهد.
3. مشاهده فایلهای باز توسط یک فرآیند خاص (PID)
lsof -p 1234
فایلها و سوکتهای باز مرتبط با فرآیند شماره 1234 را نشان میدهد.
4. پیدا کردن برنامهای که از یک پورت خاص استفاده میکند
lsof -i :80
نمایش برنامهای که از پورت 80 (HTTP) استفاده میکند.
در حالت کلی:
lsof -i
تمام اتصالات شبکهای فعال را نمایش میدهد.
5. نمایش فایلهای باز در یک مسیر خاص
lsof +D /home/mahdi/projects
تمام فایلهای باز در مسیر مشخصشده را (به صورت بازگشتی) نشان میدهد.
6. نمایش فرآیندهایی که مانع unmount یک دیسک شدهاند
lsof /mnt/usb
اگر سیستم اجازه unmount نمیدهد، با این دستور میتوان فهمید چه برنامهای هنوز از آن استفاده میکند.
بخش چهارم: تحلیل خروجی lsof
خروجی lsof شامل چند ستون کلیدی است:
| ستون | توضیح |
|---|---|
| COMMAND | نام برنامه یا دستور |
| PID | شناسه فرآیند |
| USER | کاربری که فرآیند را اجرا کرده |
| FD | نوع ارتباط (مثلاً cwd، txt، mem، 1u و …) |
| TYPE | نوع فایل (REG برای فایل معمولی، CHR برای کاراکتری، IPv4 برای سوکتها و غیره) |
| DEVICE | شماره دستگاه یا شناسه فایل سیستم |
| SIZE/OFF | اندازه یا offset فایل |
| NODE | شماره inode فایل |
| NAME | مسیر یا نام فایل یا سوکت |
مثلاً خروجی زیر:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1042 root 10u IPv4 32451 0t0 TCP *:80 (LISTEN)
به ما میگوید فرآیند nginx با PID=1042 در حال گوش دادن روی پورت 80 است.
بخش پنجم: کاربردهای امنیتی و مدیریتی lsof
۱. بررسی پورتهای باز و ارتباطات مشکوک
lsof -i -n -P
این دستور بدون ترجمهی نام دامنه (DNS lookup) و با نمایش شماره پورتها، تمام اتصالات شبکه را نشان میدهد.
در تحلیل امنیتی، از این روش برای کشف برنامههای ناشناخته یا مخرب استفاده میشود.
۲. شناسایی فایلهایی که توسط فرآیندهای ناشناخته باز شدهاند
lsof | grep deleted
گاهی فایلهایی حذف شدهاند اما هنوز توسط فرآیندی در حال استفادهاند. این فایلها میتوانند فضای زیادی از دیسک را اشغال کنند.
۳. مانیتورینگ فعالیت کاربران
مدیر سیستم میتواند بررسی کند که کدام کاربران به چه فایلهایی دسترسی دارند:
lsof -u user1
یا بالعکس:
lsof -u ^root
(علامت ^ به معنی “به جز” است؛ یعنی تمام کاربران بهجز root.)
۴. ترکیب با سایر ابزارها
lsof بهراحتی با دستورات دیگر ترکیب میشود:
lsof -i :22 | awk '{print $9}'
برای استخراج فقط ستون مربوط به آدرسهای IP متصل به SSH.
بخش ششم: محدودیتها و نکات امنیتی
- اجرای کامل
lsofمعمولاً نیاز به دسترسی root دارد، چون باید بتواند به همهی فرآیندها و فایلها دسترسی پیدا کند. - اجرای آن روی سیستمهایی با تعداد زیاد فایل باز میتواند سنگین و زمانبر باشد.
- بهتر است در اسکریپتهای نظارتی، از فیلترهای دقیقتر (
-u,-p,-i) استفاده شود تا عملکرد بهینه بماند.
جمعبندی
lsof یکی از ابزارهای کلیدی لینوکس است که برای عیبیابی سیستم، مانیتورینگ امنیتی و مدیریت منابع کاربرد دارد.
این ابزار دیدی عمیق از آنچه در پسزمینه سیستم در حال وقوع است ارائه میدهد؛ از جمله فایلهایی که در حال استفادهاند، پورتهایی که بازند، و ارتباطاتی که میان برنامهها برقرار است.
در دنیای امنیت سایبری، lsof یکی از سلاحهای سبک ولی مؤثر برای کشف فعالیتهای پنهان و تحلیل رفتار سیستم به شمار میرود.


















افزودن نظر