مدیریت کاربران یکی از وظایف اصلی مدیران سیستم است. این کار شامل عملیاتی مانند اضافه کردن کاربران جدید به سیستم، حذف کاربران موجود و تغییر ویژگیهای کاربر میشود که تنها چند نمونه از آنها را ذکر میکنیم. در این آموزش یاد خواهید گرفت که چگونه کاربران را در لینوکس با استفاده از پنج روش مختلف فهرست کنید.
چگونه کاربران را در لینوکس لیست کنیم؟ #
شما میتوانید از چند دستور ساده برای بازیابی لیستی از کاربران موجود لینوکس به همراه ابردادههای مفید مانند نامهای کاربری، شناسههای کاربری (UID)، دایرکتوریهای خانگی و موارد دیگر استفاده کنید. در زیر، پنج روش مختلف برای فهرست کردن کاربران در لینوکس را به شما نشان خواهیم داد:
catفرمان؛lessوmoreابزارهای خط فرمان؛getentفرمان؛- لیست کردن کاربران عادی و سیستمی با استفاده از
grepدستور؛ - و
awkفرمان دهید.
قبل از اینکه به مثالهای خاصی از هر کدام بپردازیم، به طور خلاصه انواع مختلف کاربران لینوکس را توضیح میدهم و فایل /etc/passwd را درک میکنم.
دو نوع کاربر لینوکس #
قبل از اینکه به روشهای فهرست کردن کاربران در لینوکس بپردازیم، به طور خلاصه انواع مختلف کاربران را بررسی میکنم، زیرا انواع مختلفی وجود دارد. این کاربران به دو دسته کلی تقسیم میشوند: کاربران معمولی و کاربران سیستمی. بیایید تفاوتهای بین این دو را بررسی کنیم.
۱. کاربران عادی #
کاربران معمولی، کاربرانی هستند که توسط کاربر root یا sudo ایجاد شدهاند . این کاربران دارای قابلیت ورود به سیستم و یک دایرکتوری خانگی برای ذخیره فایلهای شخصی مانند اسناد، تصاویر، موسیقی و ویدیوها هستند.
۲. کاربران سیستم #
این کاربران به طور خودکار توسط سیستم در حین نصب سیستم عامل یا برنامههای نرمافزاری ایجاد میشوند. آنها برای اجرای سرویسها و برنامههای سیستمی استفاده میشوند. همه کاربران دارای یک شناسه کاربری منحصر به فرد (UID) برای شناسایی خود هستند. UIDها برای کاربران سیستم از ۰ (کاربر ریشه) تا ۹۹۹ متغیر است، در حالی که کاربران معمولی معمولاً UIDهایی از ۱۰۰۰ به بالا دارند.
/etc/passwd چیست؟ #
قبل از اینکه به نحوه لیست کردن کاربران در لینوکس بپردازیم، بسیار مهم است که ابتدا فایل /etc/passwd را بررسی کنیم. این /etc/passwdفایل، یک فایل ویژه جدا شده با دونقطه است که اطلاعات حساب کاربری را ذخیره میکند. اطلاعات از چپ به راست به شرح زیر است.
- نام کاربری;
- رمز عبور رمزگذاری شده؛
- شماره شناسه کاربر (UID)؛
- شماره شناسه گروه کاربر (GID)؛
- نام کامل کاربر؛
- دایرکتوری خانگی کاربر؛
- پوسته ورود به سیستم.
این هم یک ورودی از /etc/passwdفایل.
novinhost:x:1000:1000:novinhost:/home/novinhost:/bin/bash
از خروجی بالا، نام کاربری است novinhost، رمز عبور رمزگذاری شده توسط نمایش داده میشود x، شناسه کاربری است ۱۰۰۰، شناسه دستگاه است ۱۰۰۰، نام کامل کاربر است novinhost، دایرکتوری خانگی است /home/novinhostو پوسته ورود است /bin/bash.
حالا بیایید بحث را عوض کنیم و روشهای مختلف فهرست کردن کاربران لینوکس و اطلاعات موجود در /etc/passwdفایل را بررسی کنیم.
پیش نیاز ها #
برای همراهی با این راهنما، مطمئن شوید که موارد زیر را دارید:
- یک سیستم لینوکس (هر توزیعی کاملاً خوب کار خواهد کرد)؛
- دسترسی به ترمینال یا پوسته.
بنابراین، بیایید مستقیماً وارد جزئیات شویم و برای هر کدام مثالهای خاصی بیاوریم.
لیست کردن کاربران در لینوکس: ۵ روش #
۱. لیست کردن کاربران در لینوکس با استفاده از دستور cat #
یکی از سادهترین روشهای فهرست کردن کاربران در لینوکس، استفاده از catدستور cat است. دستور cat یک فایل را به صورت ترتیبی میخواند و محتوای آن را در خروجی استاندارد نمایش میدهد. سینتکس خواندن یک فایل به شرح زیر است.
cat file_name
برای فهرست کردن کاربران در یک سیستم لینوکس، /etc/passwdفایل را با استفاده از catابزار خط فرمان همانطور که نشان داده شده است مشاهده کنید.
cat /etc/passwd
این دستور کل فایل را به همراه اطلاعات مربوط به همه کاربران (اعم از معمولی و سیستمی) چاپ میکند.

شما میتوانید با استفاده از دستور cat، یک کاربر خاص را فهرست کنید grep. در دستور زیر، دستور cat جزئیات کاربر فراخوانی شده را فهرست میکند novinhost. این -iگزینه حساسیت به حروف کوچک و بزرگ را نادیده میگیرد.
cat /etc/passwd | grep -i novinhost

۲. لیست کردن کاربران در لینوکس با استفاده از ابزارهای خط فرمان lessandmore #
این etc/passwdفایل، فایل نسبتاً طولانیای است و با اضافه شدن کاربران بیشتر به سیستم، میتواند به صورت تصاعدی افزایش یابد. در حالی که این catدستور، کار فوقالعادهای در فهرست کردن کاربران به همراه جزئیات آنها انجام میدهد، دستورات lessand moreپیمایش روان فایل را امکانپذیر میکنند.
این lessدستور هنگام مشاهده فایلهای بزرگ بسیار مفید است و باید خط به خط به راحتی پیش بروید. سینتکس اصلی این lessابزار به شکل زیر است:
less file_name
``
You can use the `less` command to open the `/etc/passwd` file in a `less` environment. Thereafter, you can scroll up and down using the up and down arrow keys or `Page up` and `Page down` keys to navigate up and down a full page at a time.
```bash
less /etc/passwd

این moreدستور از بسیاری جهات شبیه به lessدستور است. با این حال، برخلاف less، moreفقط امکان پیمایش رو به جلو در فایل را فراهم میکند و نه به عقب. برای رفتن به صفحه بعدی، کافیست کلید فاصله را روی صفحه کلید خود فشار دهید.
مانند lessدستور، میتوانید /etc/passwdفایل را همانطور که نشان داده شده است مشاهده کنید.
more /etc/passwd

۳. لیست کردن کاربران لینوکس با getentدستور #
روش دیگر برای فهرست کردن کاربران لینوکس، استفاده از getentدستور است. این دستور به /etc/nsswitch.confفایل ارجاع میدهد و ورودیهای پایگاه داده سیستم را در خروجی استاندارد نمایش میدهد. passwdپایگاه داده، فایلی است که به طور پیشفرض در خروجی گنجانده شده است.
شما میتوانید تمام محتویات پایگاه داده را passwdبا استفاده از getentدستور نشان داده شده فهرست کنید.
getent passwd
توجه کنید که خروجی چگونه با خروجی تولید شده هنگام مشاهده /etc/passwdفایل با استفاده از دستور cat مطابقت دارد.

علاوه بر این، میتوانید با مشخص کردن نام کاربری در انتهای دستور، ورودی مربوط به یک کاربر خاص را فهرست کنید. در دستور زیر، ورودی مربوط به کاربر را نمایش میدهیم novinhost.
getent passwd novinhost

۴. لیست کردن کاربران عادی و سیستمی با استفاده از grepدستور #
در مقدمه، ما به دو دسته کلی از کاربران در یک سیستم لینوکس پرداختیم: کاربران معمولی و سیستمی. شناسههای کاربری (UID) برای کاربران سیستم از ۰ (کاربر ریشه) تا ۹۹۹ متغیر است در حالی که شناسههای کاربری کاربران معمولی از ۱۰۰۰ به بالا است.
شما میتوانید با استفاده از دستور زیر، نگاهی اجمالی به محدوده UID برای کاربران عادی داشته باشید grep. اطلاعات از /etc/login.defsفایل مربوطه ارجاع داده شده است.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
از خروجی، میتوانید ببینید که UID های معتبر برای کاربران عادی از ۱۰۰۰تا متغیر هستند ۶۰۰۰۰. این بدان معناست که کمترین UID معتبری که یک کاربر عادی میتواند داشته باشد، ۱۰۰۰و بیشترین آن است ۶۰۰۰۰.

علاوه بر این، میتوانید با استفاده از دستور زیر، یک کاربر را بر اساس UID او جستجو کنید:
getent passwd UID
در مثال زیر، ما در حال جستجوی یک کاربر معمولی بر اساس UID هستیم ۱۰۰۰.
getent passwd 1000
از خروجی میتوانیم ببینیم که novinhostکاربر، کاربر معمولی مرتبط با UID است ۱۰۰۰.

علاوه بر این، میتوانید طیف وسیعی از کاربران سیستم را با استفاده از سینتکس زیر فهرست کنید.
getent passwd {[first-UID]..[last-UID]}
برای مثال، برای فهرست کردن طیف وسیعی از کاربران سیستم بین ۰ تا ۴۰۰، دستور زیر را اجرا کنید:
getent passwd {0..400}

۵. لیست کردن کاربران در لینوکس با awkدستور #
روشهایی که تاکنون بررسی کردهایم، کاربران را به همراه سایر ویژگیهای کاربر مانند نام کاربری، شناسه کاربری (UID)، شناسه GID و مسیر دایرکتوری خانگی، که چند مورد از آنها ذکر شد، فهرست میکنند. برای فهرست کردن فقط نامهای کاربری و حذف بقیه جزئیات، دستور awk“`، ابزار خط فرمانی است که باید به سراغ آن بروید.
شما میتوانید awkبا استفاده از دستور زیر، دستوری را اجرا کنید که فقط نامهای کاربری را چاپ کند. این دستورالعمل { print $1}فقط فیلد اول را برای هر ورودی چاپ میکند.
awk -F':' '{ print $1}' /etc/passwd

علاوه بر این، میتوانید برای پیمایش روان نتایج صفحه به صفحه، همانطور که نشان داده شده است، awkبا [+] ترکیب کنید.less
awk -F':' '{ print $1}' /etc/passwd | less
نتیجه گیری #
این تمام چیزی بود که برای این راهنما نیاز داشتیم. در این آموزش، یاد گرفتید که چگونه کاربران لینوکس را به پنج روش مختلف فهرست کنید.
