راهنمای کامل دستور id در لینوکس

نویسنده Leen 19 Nov 2025 · 17:36

یک توضیح ساده، کاربردی و مناسب سطح مبتدی تا متوسط

دستور id دقیقاً چه چیزی را نمایش می‌دهد؟

در لینوکس هر کاربر یک شناسه عددی دارد (UID) و هر گروه هم یک شناسه عددی مخصوص خودش (GID). این مقادیر پایه‌ی تمام سیستم Permission و مالکیت فایل‌ها هستند.

دستور id برای همین طراحی شده: سریع و مستقیم به شما می‌گوید یک کاربر چه UID و چه GID دارد و عضو چه گروه‌هایی است.

اگر بدون هیچ آرگومانی اجراش کنید:

id

خروجی شامل سه چیز است:

  • UID کاربر فعلی
  • GID گروه اصلی کاربر
  • فهرست گروه‌هایی که کاربر عضو آن‌هاست

این اطلاعات برای فهمیدن علت خطاهای Permission یا بررسی سطح دسترسی‌ها ضروری هستند.

برای گرفتن مشخصات هر کاربر دیگر هم کافی است نام کاربر را بعد از دستور id بنویسید، مثلاً:

id leen

این دستور همیشه بدون نیاز به sudo کار می‌کند.


گزینه‌های مهم دستور id که واقعاً به درد می‌خورند

در کنار نمایش کلی، id چند سوییچ مهم دارد که در مدیریت سیستم، اسکریپت‌نویسی و تشخیص خطاها بسیار استفاده می‌شوند.

۱) نمایش UID عددی

id -u

خروجی: فقط UID کاربر فعلی مناسب برای اسکریپت‌ها و بررسی سریع هویت.


۲) نمایش GID عددی

id -g

خروجی: فقط GID گروه اصلی کاربر.


۳) نمایش UID و GID واقعی (Real IDs)

گاهی UID و GID “موثر” نیستند؛ مثلاً با sudo مقادیر تغییر می‌کنند. برای دیدن مقادیر واقعی:

id -r -u # UID واقعی id -r -g # GID واقعی

این‌ها زمانی مهم می‌شوند که به‌دنبال علت رفتار متفاوت یک برنامه یا سرویس هستید.


۴) نمایش تمام GIDهایی که کاربر عضو آن‌هاست

id -G

فقط اعداد گروه‌ها را چاپ می‌کند.

اگر بخواهید شماره‌ها به صورت نام گروه باشد:

id -nG

این دو دستور در بررسی سطح دسترسی کاربران بسیار مهم‌اند، مخصوصاً روی یک سرور چندکاربره.


یک نگاه کاربردی: چه زمانی id واقعاً به کار می‌آید؟

در عمل، id در این موقعیت‌ها استفاده می‌شود:

۱) تشخیص علت Permission Denied

وقتی فایلی را نمی‌توانی باز کنی یا برنامه‌ای اجرا نمی‌شود، اولین قدم این است ببینی کاربر فعلی چه هویتی دارد و عضو چه گروه‌هاست.

۲) بررسی کاربرانی که روی سرور ساخته شده‌اند

مثلاً:

id deploy id backup id nginx

تا بفهمی این کاربران چه سطح دسترسی دارند.

۳) نوشتن اسکریپت

وقتی نیاز داری اسکریپت مطمئن شود که دستور از طریق یک کاربر خاص اجرا شده، مثلاً فقط root:

[ "$(id -u)" -eq 0 ] || { echo "Run as root"; exit 1; }

۴) بررسی گروه‌های کاربر برای تنظیم sudo یا دسترسی شبکه

عضویت در گروه‌هایی مثل wheel, docker, video, network همگی روی عملکرد سیستم اثر می‌گذارند.


جمع‌بندی

دستور id یکی از ساده‌ترین ابزارهای لینوکس است، اما همیشه اولین قدم در حل مشکلات دسترسی و مالکیت است. با چند گزینه‌ی ساده، می‌توانید سریع بفهمید:

  • کاربر چه UID و GID دارد
  • عضو چه گروه‌هایی است
  • هویت واقعی و مؤثرش چیست

تمام دستورات بدون sudo و بدون نیاز به نصب ابزار اضافی.

دیدگاه‌ها

اولین نفری باشید که دیدگاه می‌گذارد.

دیدگاه بگذارید