راهنمای کامل دستور id در لینوکس
یک توضیح ساده، کاربردی و مناسب سطح مبتدی تا متوسط
دستور 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 و بدون نیاز به نصب ابزار اضافی.
دیدگاهها
اولین نفری باشید که دیدگاه میگذارد.