محیط سیستم عامل لینوکس یک محیط چند کاربره است. به همین دلیل یکی از وظایف اساسی مدیر سیستم یا کاربرهای خانگی، مدیریت و ساخت یوزر در لینوکس است. در اغلب رابط‌های کاربری به کار گرفته شده توسط توزیع‌های مختلف لینوکس، برنامه‌های کاربردی گنجانده شده‌اند که ساخت و مدیریت کاربران را تسهیل می‌کنند. اگرچه بیشتر کاربران خانگی برای نیازهای معمول خود می‌توانند از این برنامه‌ها استفاده کنند اما به عنوان یک کاربر حرفه‌ای لینوکس یا یک مدیر شبکه حتی اگر از این ابزارها برای مدیریت یوزرها استفاده کنید بازهم لازم است تا با جزئیات مدیریت و نحوه ساخت یوزر جدید در لینوکس و همچنین نحوه ذخیره‌سازی اطلاعات مربوط به یوزرها در لینوکس آشنا باشید. علاوه بر این فارغ از رابط کاربری که استفاده می‌کنید تسلط بر دستور ساخت یوزر در لینوکس برای مدیران سیستم و به ویژه مدیران سرورهای لینوکس ضروری است. دستور useradd در لینوکس ابزار اصلی برای ساخت یوزر در لینوکس است. این دستور یک ابزار سطح پایین برای مدیریت یوزرها در لینوکس است و ابزارهای دیگر مانند برنامه‌هایی با رابط کاربری گرافیکی نیز در پشت پرده از اغلب از همین دستور استفاده می‌کنند. البته پیش‌تر در مجله فرادرس راجع به کرنل لینوکس نیز صحبت کردیم.

در این مقاله از مجله فرادرس ابتدا با ساختار دستورهای useradd و adduser در لینوکس آشنا خواهیم شد. پس از آن شیوه ذخیره‌سازی اطلاعات مربوط به یوزرها را بررسی می‌کنیم و یاد می‌گیریم چگونه اطلاعات موجود در فایل passwd در لینوکس را تفسیر کنیم. بعد از این که درکی کلی از ذخیره و مدیریت یوزرها در لینوکس به دست آوردیم در عمل از دستورهای adduser و useradd استفاده خواهیم کرد و با اجرا کردن مثال‌های مختلف قابلیت‌های این دو دستور مهم را بررسی می‌کنیم، در این بین شیوه ساخت یوزر با دسترسی روت در لینوکس را نیز مرور می‌کنیم. در نهایت به اعمال تغییرات در تنظیمات پیش‌فرض این دستورها می‌پردازیم.

دستور useradd در لینوکس

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

ساختار دستور useradd در لینوکس

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

useradd [options] username
useradd -D
useradd -D [options]

در صورتی که از دستور useradd بدون نشانه -D

 استفاده کنیم، این دستور یک یوزر جدید با نام کاربری که در قسمت username مشخص شده‌است می‌سازد. جزئیات مربوط به ساخت یوزر جدید در لینوکس با دستور useradd در قسمت options قابل شخصی‌سازی هستند. دستور useradd برای تعیین جزئیاتی که در فرمان اجرا شده به صراحت مشخص نشده باشند از مقادیر پیش‌فرض که برای آن مشخص شده است استفاده می‌کند.

برای این که مقادیر پیش‌فرض مورد استفاده توسط دستور useradd را ببینید باید از نشانه‌ -D

  استفاده کنید و قسمت options را خالی بگذارید. به این صورت:

useradd -D

چنانچه بخواهید مقادیر پیش‌فرض را تغییر دهید تا در فراخوانی‌های بعدی دستور useradd به جای مقادیر از پیش ذخیره شده، مقدار پیش‌فرض مورد نظر شما مورد استفاده قرار بگیرد باید از نشانه -D

  همراه با قسمت options استفاده کنید.

در ادامه طی مثال‌هایی با نشانه‌های مختلفی که در قسمت options برای ساخت یوزر جدید با دستور useradd می‌توانید از آن‌ها استفاده کنید آشنا خواهیم شد. همچنین نشانه‌های مورد نیاز برای تغییر مقادیر پیش‌فرض دستور useradd را نیز بررسی می‌کنیم.

آیکون هایی از چندین یوزر

راهنمای رسمی دستور useradd در لینوکس به مدیران سیستم توصیه کرده است برای ساخت یوزر جدید تا حد امکان از دستور adduser به جای دستور useradd استفاده کنند. دستور adduser صرفا یک ابزار سطح بالا است که در نهایت از دستور useradd استفاده می‌کند اما استفاده از آن برای کاربران ساده‌تر است. برای به دست آوردن درک عمیقی از نحوه ساخت و مدیریت یوزرها در لینوکس لازم است ابتدا با دستور useradd و قابلیت‌های آن آشنا باشید اما پس از تسلط بر این دستور و حین کار در محیط واقعی لازم است این نکته را در نظر داشته باشید.

دستور adduser در لینوکس

دستور adduser در لینوکس یک ابزار سطح بالا برای ساخت یوزر جدید در لینوکس است که خود از دستور useradd و سایر دستورهای سطح پایین لینوکس استفاده می‌کند. از این دستور برای ساخت یوزر جدید استفاده می‌شود. این دستور نیز امکان تعیین جزئیات مربوط به ساخت یوزر را فراهم می‌کند. اگرچه کارکرد این دستور مشابه دستور useradd است، اما استفاده از آن ساده‌تر است. همان‌طور که پیش از این ذکر شد، راهنمای رسمی دستور useradd به مدیران سیستم استفاده از دستور adduser را توصیه کرده است. از آنجا که هر دو دستور useradd و adduser دستورات پرکاربردی هستند در این مقاله هر دوی این دستورها را بررسی خواهیم کرد. به عنوان یک مدیر سیستم یا حتی کاربر معمولی لینوکس لازم است با این دو دستور آشنایی کافی داشته باشید.

ساخت و مدیریت یوزرها در لینوکس با دستور adduser

بر خلاف دستور useradd، ابزار adduser ممکن است به صورت پیش‌فرض در بعضی از توزیع‌های لینوکس در دسترس نباشد.

نصب کردن ابزار adduser در لینوکس

پیش از این که بخواهیم از دستور adduser استفاده کنیم لازم است از نصب بودن آن روی سیستم خود اطمینان حاصل کنیم. برای بررسی برنامه‌های نصب شده روی سیستم در توزیع‌های مختلف لینوکس از دستورهای مختلفی استفاده می‌شود، در این مقاله سعی بر این است که همه توزیع‌های پرکاربرد لینوکس را پوشش دهیم. اگر نام توزیع لینوکس مورد استفاده خودتان را نمی‌دانید کافیست دستور زیر را در ترمینال لینوکس وارد کنید. پس از وارد کردن این دستور اطلاعاتی را در مورد سیستم عامل خواهید دید که شامل نام توزیع لینوکس نیز خواهد بود:

cat /etc/os-release

برای بررسی نصب بودن ابزار adduser در توزیع‌های اوبونتو و دبیان و سایر توزیع‌های بر پایه دبیان از دستور زیر استفاده کنید:

apt list --installed | grep adduser

در صورتی که ابزار adduser از پیش نصب شده باشد در خروجی دستور فوق نام ابزار مورد جستجو را همراه با جزئیات آن خواهید دید. در غیر این صورت دستور فوق رکوردی را در خروجی بر نمی‌گرداند. تصویر زیر مثالی از اجرای این دستور را نشان می‌دهد. همان‌طور که مشخص است ابزار adduser در این سیستم از پیش نصب شده‌است.

بررسی نصب بودن ابزار adduser برای ساخت یوزر جدید در لینوکس توزیع اوبونتو

برای انجام همین کار در توزیع فدورا دستور زیر را در ترمینال لینوکس وارد کنید:

dnf list installed | grep installed

و اگر از توزیع CentOS یا RHEL استفاده می‌کنید باید دستور زیر را وارد کنید:

yum list installed | grep adduser

چنانچه دستور adduser در سیستم شما از پیش نصب شده است می‌توانید از مطالعه قسمت بعدی صرف نظر کنید. در ادامه نحوه نصب ابزار adduser در لینوکس را خواهیم دید.

نصب adduser در اوبونتو

برای نصب کردن ابزار adduser در اوبونتو و همچنین توزیع دبیان و سایر توزیع‌های مبتنی بر دبیان دستور زیر را در ترمینال لینوکس وارد کنید:

sudo apt-get install adduser

ممکن است پس از وارد کردن دستور بالا لازم باشد رمز عبور خود را وارد کنید. پس از خاتمه فرآیند نصب، ابزار adduser در دسترس شما خواهد بود و می‌توانید از آن برای ساخت یوزر جدید در لینوکس استفاده کنید.

نصب adduser در CentOS

با وارد کردن دستور زیر می‌توانید ابزار adduser را در توزیع‌های RHEL و CentOS نصب کنید:

sudo yum install adduser

نصب adduser در فدورا

در توزیع فدورا به کمک دستور زیر می‌توانید ابزار adduser را نصب کنید:

sudo dnf install adduser

ساختار دستور adduser در لینوکس

ساختار کلی دستور adduser به این صورت است:

adduser [options] username

به کمک نشانه‌هایی که در قسمت options می‌توان از آن‌ها استفاده کرد جزئیات مربوط به ساخت یوزر جدید را مشخص می‌کنیم. در ادامه طی مثال‌های مختلفی با نشانه‌هایی که دستور adduser از آن‌ها پشتیبانی می‌کند آشنا خواهیم شد.

نحوه ساخت یوزر جدید در لینوکس

پیش از این که کاربرد دستورهای useradd و adduser را برای ساخت یوزر جدید بررسی کنیم لازم است قدری اطلاعات کلی درباره نحوه ساخت یوزر جدید در لینوکس و شیوه ذخیره سازی اطلاعات مربوط به یوزرها داشته باشیم تا درک عمیقی از کارکرد دستورهای فوق پیدا کنیم. برای ساخت یوزر جدید در لینوکس دستور useradd باید به ترتیب این کارها را انجام دهد:

  1. فراهم کردن شناسه کاربر و شناسه گروه یکتا: شناسه کاربر و شناسه گروه اعداد صحیح یکتایی هستند که به کمک آن‌ها می‌توانیم یک کاربر یا گروه را مشخص کنیم. شناسه 0 به صورت پیش‌فرض در اختیار کاربر root قرار گرفته است. دستور useradd باید اعدادی را برای مقداردهی شناسه کاربر و گروه مشخص کند که با سایر گروه‌ها و کاربران تداخل نداشته باشد.
  2. ویرایش فایل‌هایی که اطلاعات مربوط به حساب‌های کاربری در آن‌ها ذخیره می‌شوند. تنها یوزر روت « root

     » سطح دسترسی مناسب برای ویرایش این فایل‌ها را دارد، به همین دلیل دستور useradd را تنها می‌توان از طریق یوزر روت یا یوزرهایی که دسترسی sudo دارند اجرا کرد.

  3. ساخت دایرکتوری home

     برای یوزر جدید و تنظیم سطوح دسترسی مناسب برای آن.

آیکون یوزرهای مختلف

ذخیره‌سازی اطلاعات حساب‌های کاربری در لینوکس

اطلاعات مربوط به حساب‌های کاربری در لینوکس به صورت متن ساده داخل چهار فایل نگهداری می‌شوند. این فایل‌ها عبارتند از: /etc/passwd

 ، /etc/shadow

 ، /etc/group

  و /etc/gshadow

 . در ادامه آشنایی مختصری با هرکدام از این فایل‌ها پیدا می‌کنیم. دانستن کارکرد هرکدام از این فایل‌ها برای این که بینش عمیقی از نحوه‌ی کارکرد دستورهای مربوط به مدیریت کاربران به دست بیاوریم ضروری است، اما همیشه به خاطر داشته باشید که ویرایش مستقیم این فایل‌ها معمولا کار شما را در خطر قرار می‌دهد. به جای ویرایش مستقیم فایل‌ها همیشه، از دستور مناسب استفاده کنید. همچنین کارشناسان امنیت و افرادی که تست نفوذ انجام می‌دهند معمولا علاقه زیادی به بررسی این فایل‌ها و حصول سطح دسترسی مناسب برای ویرایش این فایل‌ها نشان می‌دهند.

فایل passwd در لینوکس

این فایل با مسیر مطلق /etc/passwd

 اطلاعات همه‌ یوزرهای سیستم را به صورت متن ساده نگهداری می‌کند. برای بررسی محتویات این فایل کافیست دستور زیر را در ترمینال لینوکس وارد کنید:

cat /etc/passwd

پس از وارد کردن دستور زیر فهرستی از یوزرهای سیستم و اطلاعات مربوط به آن‌ها را خواهید دید. هر خط از اطلاعات ذخیره شده در این فایل مربوط به یک یوزر است. هر رکورد از این فایل شامل ۷ فیلد می‌شود که با کاراکتر :

  از یکدیگر جدا شده‌اند. به طور مثال رکورد زیر را در نظر بگیرید:

user1:x:1000:1000:Firstname Lastname:/home/user1:/bin/bash

فیلد‌های این فایل به ترتیب از چپ به راست عبارتند از:

  1. نام کاربری: مانند user1 در مثال فوق.
  2. رمز عبور: در نسخه‌های قدیمی لینوکس رمز عبور هر کاربر به صورت رمزنگاری شده در این فیلد ذخیره می‌شد. در نسخه‌های جدیدتر لینوکس به دلایل امنیتی رمز عبور دیگر در این فایل نگهداری نمی‌شود و در این فیلد تنها کاراکتر x

     قرار می‌گیرد. رمز عبور در فایل دیگری به صورت جداگانه ذخیره می‌شود.

  3. شناسه کاربری: با عبارت « UID

    » شناخته می‌شود و یک عدد صحیح یکتا است که به یوزر نسبت داده می‌شود. مانند ۱۰۰۰ در مثال بالا.

  4. شناسه گروه: با عبارت « GID

    » شناخته می‌شود و یک عدد صحیح یکتا است که به گروه نسبت داده می‌شود و گروه اصلی که کاربر به آن تعلق دارد را مشخص می‌کند. مانند ۱۰۰۰ در مثال بالا.

  5. سایر اطلاعات غیر ضروری: در این فیلد اطلاعات اضافه که در فیلدهای دیگر مشخص نشده‌اند را می‌توان ذخیره کرد. در بیشتر توزیع‌های لینوکس امروزی نام کامل کاربر در این فیلد ذخیره می‌شود. اگر بخواهیم بیشتر از یک مقدار را در این فیلد ذخیره کنیم، مقادیر مختلف را با کاراکتر کاما یا ,

     از همدیگر تفکیک می‌کنیم. مانند Firstname Lastname در مثال بالا.

  6. مسیر مطلق دایرکتوری home متعلق به کاربر: مانند /home/user1

     در مثال بالا.

  7. مسیر مطلق shell لاگین مختص یوزر: در این فیلد برنامه shell که پس از وارد شدن کاربر اجرا می‌شود مشخص می‌شود. مانند /bin/bash

     در مثال بالا.

فایل shadow در لینوکس

فایل /etc/shadow

  رمز عبور یوزرها را به صورت رمزنگاری شده در خود جای داده است. در این فایل نیز مانند فایل passwd در هر رکورد اطلاعات مربوط به یک یوزر درج شده است و فیلدهای مختلف با کاراکتر :

  از یکدیگر تفکیک شده‌اند. درباره فیلدهای مربوط به رکوردهای ذخیره شده در این فایل چیزی که لازم است بدانید این است که در اولین فیلد نام کاربری یوزر و در دومین فیلد رمز عبور به صورت رمزنگاری شده ذخیره می‌شود. سایر فیلدها در این فایل مربوط به زمان آخرین تغییر رمز عبور، تاریخ انقضای آن و فعال یا غیرفعال شدن یوزر هستند.

فیلد مربوط به رمز عبور در این فایل به صورت $type$salt$hashed

  ذخیره شده است.

به دلیل اهمیت ویژه این فایل در امنیت سیستم، تنها کاربر روت یا کاربرانی با دسترسی sudo در لینوکس می‌توانند محتوای آن را بررسی کنند. در صورتی که شما این سطح دسترسی را دارید با استفاده از دستور زیر می‌توانید محتویات این فایل را بررسی کنید:

sudo cat /etc/shadow

فایل‌های group و gshadow در لینوکس

این فایل‌ها به ترتیب اطلاعات مربوط به گروه‌ها و رمز عبور گروه‌ها را ذخیره می‌کنند. امروزه تعیین رمز عبور برای گروه‌ها روش مرسومی نیست. برای بررسی اطلاعات مربوط به گروه‌ها با وارد کردن دستور زیر می‌توانید رکوردهای مربوط به تمام گروه‌ها را مشاهده کنید:

cat /etc/group

مانند دو فایل دیگر، در این فایل نیز هر رکورد حاوی اطلاعات مربوط به یک گروه است و فیلد‌های آن توسط کاراکتر :

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

» و اعضای گروه. نام کاربری اعضای گروه توسط کاراکتر کاما « ,

 » تفکیک شده‌اند.

جستجوی رکوردهای یک یوزر خاص در سیستم

برای بررسی رکورد مربوط به یک کاربر یا گروه خاص در هرکدام فایل‌هایی که در بالا به آن‌ها اشاره شد، می‌توانیم از دستور grep

 استفاده کنیم. برای مثال اگر بخواهیم اطلاعات مربوط به یوزر با نام کاربری user1 را از فایل passwd استخراج کنیم از دستور زیر استفاده می‌کنیم:

cat /etc/passwd | grep user1

در صورتی که یوزر با نام کاربری مورد جستجو وجود داشته باشد رکورد مربوط به او در خروجی نمایش داده می‌شود. در غیر این صورت دستور بالا فاقد خروجی خواهد بود. به همین ترتیب با تغییر نام فایل و نام کاربری در دستور بالا می‌توانیم اطلاعات مورد نظر خود را در هرکدام از فایل‌ها جستجو کنیم. لازم به ذکر است برای بررسی محتویات فایل‌های shadow و gshadow باید از عبارت sudo

  در ابتدای دستور استفاده کنیم.

همچنین برای مشاهده اطلاعات رکورد مربوط به زمان انقضای یک یوزر خاص در فایل shadow می‌توانیم از دستور chage

 با نشانه -l

 نیز استفاده کنیم. مثلا برای بررسی اطلاعات مربوط به تاریخ انقضای یوزر با نام کاربری user1 می‌توانیم از دستور زیر استفاده کنیم:

sudo chage -l user1

مثال‌هایی از کاربرد دستور useradd و adduser

در ادامه به بررسی مثال‌هایی از کاربرد هر دو دستور useradd و adduser برای ساخت یوزر در لینوکس می‌پردازیم. طی بررسی این مثال‌ها با قابلیت‌های پرکاربرد این دستورها آشنا می‌شویم.

برای این که درک بهتری از عملکرد دستورها پیدا کنید بهتر است ترمینال لینوکس را باز کنید و خودتان دستورها را وارد کنید و نتیجه اجرای آن‌ها را بررسی کنید.

دستور useradd و adduser ابزارهای ساخت یوزر در لینوکس

برای حذف یوزرهایی که حین بررسی مثال‌های زیر می‌سازید کافیست در دستور زیر عبارت username را با نام کاربری یوزری که قصد حذف آن را دارید جایگزین کنید:

sudo userdel -r -f username

به خاطر داشته باشید مثال‌های زیر توسط کاربری قابل اجرا خواهند بود که دسترسی اجرای sudo

 را داشته باشد.

دستور ساخت یوزر در لینوکس

برای اجرای دستور useradd در ساده‌ترین شکل خود تنها کافیست نام کاربری یوزر جدید را مشخص کنید. ساده‌ترین دستور ساخت یوزر در لینوکس استفاده از دستور useradd بدون هیچکدام از آرگومان‌های قسمت options است. مانند دستور زیر:

sudo useradd user1

با اجرای دستور بالا یک یوزر جدید با نام کاربری user1 ساخته می‌شود. از آنجا که در مثال بالا قسمت options را کاملا خالی گذاشتیم، دستور useradd دقیقا بر اساس گزینه‌های از پیش تعریف شده یوزر جدید را می‌سازد. جزئیات پیش‌فرض ساخت یوزر جدید توسط دستور useradd در فایل /etc/useradd

 تعریف شده‌اند.

یوزر جدید که توسط دستور بالا ساخته شده‌است در این مرحله در وضعیت «قفل شده» قرار دارد. برای فعال کردن این یوزر باید رمز عبور برای این یوزر مشخص کنید.

تعیین رمز عبور برای یوزر در لینوکس

برای مشخص کردن رمز عبور برای یک یوزر در لینوکس از دستور passwd

  استفاده می‌کنیم. همچنین یوزرهای جدید که مانند مثال بالا توسط دستور useradd ایجاد می‌شوند در ابتدا قابل استفاده نیستند و باید با استفاده از دستور passwd

 رمز عبور برای آن‌ها تعیین شود تا بتوانیم از آن‌ها استفاده کنیم. در ادامه مثال قبل برای تعیین رمز عبور برای کاربر user1 از دستور زیر استفاده می‌کنیم:

sudo passwd user1

پس از وارد کردن دستور بالا از شما خواسته می‌شود که رمز عبور جدید را وارد کنید. دقت کنید رمز عبور وارد شده توسط شما در ترمینال نمایش داده نمی‌شود اما پس از فشردن کلید Enter

 ثبت می‌شود. در این مرحله باید دو مرتبه رمز عبور مورد نظر را وارد کنید.

بعد از تعیین رمز عبور، کاربر user1 از حالت «قفل شده» خارج می‌شود و می‌توانیم با استفاده از آن وارد سیستم شویم. با وارد کردن دستور زیر می‌توانید ساخت یوزر جدید با نام کاربری user1 را تایید کنید. دستور زیر رکورد مربوط به کاربر تازه ساخته شده در فایل passwd را نمایش می‌دهد:

cat /etc/passwd | grep user1

همچنین با دستور زیر نیز می‌توانید رکرورد مربوط به همین یوزر را در فایل shadow ببینید:

sudo cat /etc/shadow | grep user1

به عنوان یک تمرین می‌توانید یک یوزر جدید به کمک دستور useradd بسازید و پیش از تعیین رمز عبور برای یوزر جدید، در حالی که هنوز در وضعیت «قفل شده» قرار دارد رکرود مربوط به آن را در فایل shadow بررسی کرده و با رکورد مربوط به user1 مقایسه کنید.

آیکون چندین یوزر در حال اضافه شدن به محیط لینوکس

ساخت یوزر جدید همراه با دایرکتوری home در لینوکس

در مثال قبل اگر رکورد مربوط به کاربر user1 را در فایل passwd برسی کنید چیزی شبیه به رکورد زیر را خواهید دید:

user1:x:1001:1001::/home/user1:/bin/sh

همان‌طور که می‌بینید مسیر دایرکتوری home مربوط به این یوزر برابر /home/user1

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

ls -lah /home/user1

پس از اجرای این دستور می‌بینیم که این دایرکتوری وجود ندارد. علت این مشکل این است که دستور useradd تا زمانی که صراحتا از آن خواسته نشود، دایرکتوری home را برای یوزر جدید نمی‌سازد.

در صورتی که دایرکتوری home مشخص شده برای یک یوزر در فایل passwd وجود نداشته باشد، پس از این که آن یوزر در محیط ترمینال وارد شود به جای دایرکتوری home به مسیر root یا /

 هدایت می‌شود.

اگر هنگام ساخت یوزر جدید با استفاده از دستور useradd از نشانه‌ -m

  استفاده کنیم همزمان با ساخت یوزر جدید، دستور useradd دایرکتوری home مربوط به این یوزر را نیز می‌سازد. به طور مثال می‌توانید با استفاده از دستور زیر یک یوزر جدید با نام کاربری user2 بسازید، خواهید دید که پس از ساخت این یوزر دایرکتوری home مربوط به آن نیز در مسیر /home/user2

  موجود خواهد بود:

sudo useradd -m user2

با دستور زیر وضعیت دایرکتوری home متعلق به کاربر user2 را بررسی کنید:

sudo ls -lah /home/user2

استفاده از دستور adduser در لینوکس برای ساخت یوزر جدید

تا به اینجا با نحوه ساخت یوزر جدید در لینوکس به کمک دستور useradd آشنا شدیم. همان‌طور که پیش از این گفتیم دستور adduser یک دستور سطح بالا است که ساخت یوزر را تسهیل می‌کند. برای ساخت یوزر جدید با نام کاربری user1 و همچنین ساخت دایرکتوری home برای این یوزر در مسیر /home/user1

 تنها کافیست دستور زیر را در ترمینال لینوکس وارد کنیم:

sudo adduser user3

دستور adduser به صورت تعاملی اجرا می‌شود. در مثال بالا پس از وارد کردن دستور، از شما خواسته می‌شود که رمز عبور برای کاربر جدید وارد کنید. همچنین اطلاعات تکمیلی مانند نام کامل، شماره تلفن و … را نیز می‌توانید برای یوزر جدید مشخص کنید. به این ترتیب ساخت یوزر جدید به همراه دایرکتوری home متعلق به آن و همچنین تعیین رمز عبور و فعال‌سازی همگی توسط دستور adduser با یکبار وارد کردن دستور فوق انجام می‌شوند.

مانند مثال‌های قبل می‌توانید رکورد مربوط به یوزر جدید را در فایل‌های passwd و shadow بررسی کنید. برای مشاهده دایرکتوری home مربوط به این یوزر نیز از دستور ls مانند مثال‌های قبل استفاده کنید.

مشخص کردن دایرکتوری home برای یوزر جدید

به طور معمول دایرکتوری home متعلق به هر کاربر یک دایرکتوری با نام کاربری آن کاربر است که در مسیر /home

 ایجاد می‌شود. به دلایل مختلفی ممکن است بخواهید مسیر دیگری را برای دایرکتوری home متعلق به یک یوزر خاص انتخاب کنید. برای انجام این کار به کمک دستور useradd باید از نشانه -d

  همراه با نشانه -m

 استفاده کنید. در مثال زیر یک یوزر جدید با نام کاربری user4 ایجاد کرده‌ایم و مسیر دایرکتوری home متعلق به آن را برابر /home/shared-directory

  قرار داده‌ایم.

sudo useradd -m -d /home/shared-directory user4

برای مشخص کردن دایرکتوری home هنگام ساخت یوزر با دستور adduser از این دستور مانند مثال زیر استفاده می‌کنیم:

sudo adduser --home /home/shared-directory user4

به این موضوع دقت کنید که در صورتی که مسیر مشخص شده به عنوان دایرکتوری home در هرکدام از دستورهای بالا از قبل وجود نداشته باشد، دستور useradd پس از ساختن این دایرکتوری سطوح دسترسی و مالکیت آن را نیز برای یوزر جدید تنظیم می‌کند اما چنانچه مسیری که از قبل موجود باشد را به عنوان دایرکتوری home انتخاب کنیم باید به صورت دستی سطوح دسترسی و مالکیت دایرکتوری را برای استفاده توسط یوزر جدید تنظیم کنیم.

ساخت یوزر جدید با شناسه مشخص

گاهی اوقات مدیران سیستم هنگام ساخت یک یوزر جدید نیاز دارند تا شناسه « UID

» یوزر جدید را به صورت دستی مشخص کنند. یکی از دلایل انجام این کار می‌تواند حفظ یکپارچگی بین چند سیستم مختلف باشد. به طور مثال در احراز هویت مرکزگرا که پروتکل «LDAP» از آن استفاده می‌کند این موضوع ضروری است.

مجموعه ای از آیکون یوزرهای مختلف و متصل به هم

با استفاده از نشانه -u

  در دستور useradd در لینوکس می‌توانیم شناسه یوزر جدید را مشخص کنیم. در مثال زیر با استفاده از دستور useradd یک یوزر جدید با شناسه 3003 و نام کاربری user5 ساخته‌ایم:

sudo useradd -u 3003 user5

برای مشخص کردن شناسه یوزر جدید هنگام استفاده از دستور adduser از نشانه –uid

  استفاده می‌کنیم. مانند مثال زیر:

sudo adduser --uid 3003 user5

برای بررسی مشخصات یوزر جدید علاوه بر بررسی رکورد مربوط به یوزر در فایل passwd می‌توانیم از دستور id

 مانند مثال زیر استفاده کنیم:

id user5

به کمک دستور بالا می‌توانیم شناسه کاربر، شناسه گروه و گروه‌هایی که یک کاربر عضو آن‌ها هست را ببینیم.

ساخت یوزر جدید با یک گروه مشخص

به طور معمول هر زمان که یک یوزر جدید ساخته می‌شود یک گروه جدید نیز با نام کاربری همان یوزر ساخته می‌شود و به صورت پیش‌فرض یوزر جدید متعلق به آن گروه می‌شود.

سناریو‌های مختلفی وجود دارد که در آن‌ها ممکن است مدیر سیستم بخواهد یک یوزر به صورت پیش‌فرض متعلق به گروه دیگری که از قبل موجود است باشد و نیازی به ساخت گروه متعلق به خود نداشته باشد. به طور مثال در حالتی که چند یوزر از یک دایرکتوری home به صورت مشترک استفاده می‌کنند لازم است یوزرها عضو گروهی باشند که سطح دسترسی مناسبی نسبت به دایرکتوری مورد استفاده به عنوان home داشته باشد.

برای اینکه یوزر جدید متعلق به یک گروه از تعریف شده باشد هنگام استفاده از دستور useradd از نشانه -g

  استفاده می‌کنیم. پس از این نشانه می‌توانیم گروه مورد نظر را به وسیله شناسه « GID

» یا نام گروه مشخص کنیم. دقت کنید که این گروه باید پیش از این تعریف شده باشد در غیر این صورت با پیام خطا مواجه خواهید شد. اگر گروهی با نام newusers و شناسه 3000 از پیش تعریف شده باشد، با هرکدام از دستورهای زیر می‌توانیم یوزر جدیدی با نام کاربری user6 ایجاد کنیم که به صورت پیش‌فرض عضو گروه newuser باشد:

sudo useradd -g 3000 user6

یا از دستور زیر می‌توانیم استفاده کنیم:

sudo useradd -g newusers user6

در صورتی که برای ساخت یوزر در لینوکس از دستور adduser استفاده کنیم، برای مشخص کردن گروه با استفاده از شناسه « GID

» از نشانه –gid

 و برای مشخص کردن گروه با استفاده از نام گروه از نشانه –ingroup

 استفاده می‌کنیم. به این ترتیب دو مثال بالا را با استفاده از دستور adduser به ترتیب می‌توان به صورت دو دستور زیر نوشت:

sudo adduser --gid 3000 user6

و در ادامه خواهیم داشت:

sudo adduser --ingroup newusers user6

در نهایت با استفاده از دستور id

 می‌توانیم عضویت یوزر جدید در گروه مشخص شده را تایید کنیم.

ساخت یوزر جدید و افزودن آن به چند گروه

در صورتی که بخواهیم یوزر جدید پس از ساخته شدن به چند گروه مختلف افزوده شود از نشانه -G

 در دستور useradd استفاده می‌کنیم. در این حالت لیست گروه‌های مورد نظر را پس از این نشانه نوشته و نام آن‌ها را با کاراکتر کاما « ,

 » از یکدیگر جدا می‌کنیم. دقت کنید که نباید از کاراکتر فاصله در این لیست استفاده کنید. به طور مثال اگر بخواهیم یوزر جدیدی با نام کاربری user7 بسازیم که به گروه‌های www-data و newusers اضافه شود از دستور زیر استفاده می‌کنیم:

sudo useradd -G www-data,newusers user7

برای انجام همین کار توسط دستور adduser ابتدا لازم است گروه‌های اضافه‌ای که می‌خواهید یوزر جدید به آن‌ها افزوده شود را در فایل تنظیمات ابزار adduser مشخص کنید. این فایل در مسیر /etc/adduser.conf

 ذخیره شده است. برای ویرایش این فایل دستور زیر را در ترمینال لینوکس وارد کنید:

sudo nano /etc/adduser.conf

به طور مثال اگر بخواهیم مانند مثال قبل یوزر جدید به گروه‌های www-data و newusers افزوده شود باید عبارت زیر را به انتهای فایل اضافه کنید:

EXTRA_GROUPS="www-data newusers"

دقت کنید که در این فایل نام گروه‌های مختلف با یک کاراکتر فاصله از همدیگر جدا می‌شوند. پس از اعمال تغییرات در فایل تنظیمات کلید‌های Ctrl

 و X را همزمان بفشارید، سپس حرف Y را تایپ کنید و کلید Enter

 را فشار دهید. حال با وارد کردن دستور زیر یوزر جدیدی با نام کاربری user7 ایجاد می‌شود و به گروه‌هایی که در فایل تنظیمات adduser مشخص کردید افزوده می‌شود:

sudo adduser user7 --add_extra_groups

همان‌طور که در مثال بالا مشخص است برای افزودن یوزرهای جدید به گروه‌های پرتکرار و مشخص استفاده از دستور adduser ساده‌تر است چراکه با استفاده از این دستور تنها کافیست یک مرتبه گروه‌های اضافه‌ای که می‌خواهید یوزر جدید به آن‌ها افزوده شود را مشخص کنید و پس از آن هربار از نشانه –add_extra_groups

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

مشخص کردن شل لاگین برای یوزر جدید

شل لاگین «Login Shell» اولین پردازه‌ای است که پس از ورود یک یوزر به سیستم برای آن یوزر اجرا می‌شود. در واقع از طریق همین پردازه شما می‌توانید با ترمینال لینوکس تعامل کرده و دستورهای مختلف را اجرا کنید. به صورت پیش‌فرض در بیشتر توزیع‌های لینوکس، bash به عنوان شل پیش‌فرض برای یوزرها انتخاب می‌شود اما گزینه‌های دیگری نیز مانند Zsh و Dash برای همین کار موجود هستند. ممکن است این برنامه‌ها در سیستم شما به صورت پیش‌فرض نصب نباشند و نیاز به نصب آن‌ها داشته باشید.

هر دو دستور adduser و useradd امکان مشخص کردن شل لاگین برای یوزر جدید را به ما می‌دهند. با کمک این قابلیت علاوه بر امکان شخصی‌سازی شل لاگین برای یوزر جدید می‌توانیم مانع از ورود یوزر به سیستم شویم. این امکان مناسب یوزرهای سیستم یا سرویس‌هایی است که نیاز به تعامل با شل ندارند و تنها لازم است پردازه‌های مشخصی را اجرا کنند. با ممانعت از ورود این یوزرها از بروز مشکلات امنیتی جلوگیری می‌کنیم.

برای مشخص کردن شل لاگین یوزر هنگام ساخت یوزر با دستور useradd از نشانه -s

 استفاده می‌کنیم و پس از آن مسیر مطلق فایل برنامه شل مورد نظر را می‌نویسیم. مثلا اگر dash در مسیر /usr/bin/dash

 قرار داشته باشد، برای ساخت یوزر جدید با نام کاربری user8 که از dash به جای bash استفاده کند از دستور useradd به صورت زیر استفاده می‌کنیم:

sudo useradd -s /user/bin/dash user8

برای انجام همین کار توسط دستور adduser از نشانه –shell

  استفاده می‌کنیم. اگر بخواهیم مثال بالا را با دستور adduser اجرا کنیم باید دستور زیر را در ترمینال لینوکس وارد کنیم:

sudo adduser --shell /usr/bin/dash user8

برای ممانعت از ورود یوزر به سیستم مسیر /usr/sbin/nologin

 را به عنوان شل لاگین انتخاب می‌کنیم.

پس از ساخت یوزر جدید با شل لاگین متفاوت، رکورد مربوط به یوزر جدید را در فایل passwd بررسی کنید.

ساخت یوزر دارای تاریخ انقضا

در بسیاری از مواقع مدیران سیستم نیاز به ساخت یوزرهای موقتی دارند. یکی از مهمترین کاربرد‌های تنظیم تاریخ انقضا برای یوزرهای جدید زمانی است که شما به عنوان مدیر سیستم می‌خواهید به طور موقت دسترسی به سیستم را برای شخص دیگری فراهم کنید، در این صورت تنظیم تاریخ انقضا برای یوزر جدید باعث می‌شود پس از سپری شدن مدت مشخص شده، این یوزر به صورت خود به خود حذف شود. استفاده از یوزرهای دارای تاریخ انقضا در چنین شرایطی امنیت سیستم شما را افزایش می‌دهد.

ممانعت از ورود یوزرهایی که تاریخ انقضای مشخص شده هنگام ساخت یوزر در لینوکس برای آن‌ها سپری شده

برای ساخت یوزر جدید دارای تاریخ انقضا از نشانه -e

  در دستور useradd استفاده می‌کنیم. برای مشخص کردن تاریخ انقضا باید تاریخ را به صورت YY-MM-DD

 بنویسیم. به طور مثال برای ساخت یوزر جدید با نام کاربری user9 به صورتی که این یوزر در تاریخ اول نوامبر ۲۰۲۳ منقضی شود، از دستور useradd در لینوکس به شکل زیر استفاده می‌کنیم:

sudo useradd -e 2023-11-01 user9

با استفاده از دستور chage

 به صورت زیر می‌توانیم تاریخ انقضای یوزر user9 را بررسی کنیم:

sudo chage -l user9

ساخت یوزر سیستم

بسیاری از برنامه‌ها و سرویس‌ها مانند وب سرور آپاچی یا پایگاه داده MySQL از یک یوزر مخصوص به خودشان برای اجرای پردازه‌ها استفاده می‌کنند. این یوزرها با عنوان یوزر سیستم شناخته می‌شوند و با یوزرهای معمولی متفاوتند. به طور معمول یوزرهای سیستم برای اجرای پردازه‌ها یا سرویس‌های مشخصی استفاده می‌شوند و مقدار لاگین شل برای آن‌ها برابر /usr/sbin/nologin

  یا /bin/false

  مقداردهی می‌شود تا امکان ورود به سیستم و تعامل با شل را نداشته باشند. مقدار شناسه یوزرهای سیستم نیز در بیشتر توزیع‌های لینوکس در بازه بین 100 تا 999 قرار می‌گیرد.

با استفاده از نشانه -r

 در دستور useradd می‌توانیم مشخص کنیم که قصد ایجاد یک یوزر سیستم را داریم. به طور مثال برای برای ساخت یک یوزر سیستم با نام کاربری user10 به شکل زیر از دستور useradd استفاده می‌کنیم:

sudo useradd -r user10

به کمک دستور id

 یا با بررسی رکورد مربوط به این یوزر در فایل passwd تفاوت محدوده شناسه این یوزر با سایر یوزرها را می‌توانیم بررسی کنیم. در هنگام استفاده از دستور useradd برای ساخت یوزر سیستم باید به این موضوع دقت کنیم که اگرچه استفاده از نشانه -r

 مقدار شناسه یوزر جدید را در بازه مربوط به یوزرهای سیستم تنظیم می‌کند، اما تنظیم شل لاگین مناسب و اختصاص یوزر سیستم به گروه‌های صحیح بر عهده کاربر است. غفلت از اعمال تنظیمات صحیح در این مورد می‌تواند به بروز آسیب‌پذیری‌های امنیتی در سیستم منجر شود.

برای ایجاد یوزر سیستم با استفاده از دستور adduser تنها کافیست از نشانه –system

  استفاده کنیم. دستور adduser در این حالت با تنظیم صحیح شل لاگین مربوط به یوزر جدید و همچنین اعمال تنظیمات مناسب در فایل shadow امکان ورود یوزر سیستم جدید را از بین می‌برد. در مثال زیر با استفاده از دستور adduser یک یوزر سیستم با نام کاربری user11 ایجاد کرده‌ایم:

sudo adduser --system user11

ساخت یوزر با دسترسی روت در لینوکس

در توزیع‌های مدرن لینوکس برای این که یک یوزر دسترسی روت داشته باشد، باید عضو گروهی باشد که امکان اجرای دستور sudo را داشته باشد. با استفاده از این دستور می‌توانید دستورهای مختلف را به عنوان کاربر روت اجرا کنید. گروهی که این امکان را فراهم می‌کند در توزیع‌های اوبونتو، دبیان و سایر توزیع‌های بر پایه دبیان sudo و در توزیع‌های CentOS، RHEL و فدورا گروه wheel نام دارد.

پیش از این دیدیم که با استفاده از نشانه -G

 در دستور useradd می‌توانیم یوزر جدید را به گروه‌هایی که پیش از این ایجاد شده‌اند اضافه کنیم. به این ترتیب برای ساخت یوزر جدید با دسترسی روت در لینوکس توزیع اوبونتو، دبیان و سایر توزیع‌های بر پایه دبیان از دستور زیر استفاده می‌کنیم:

sudo useradd -G sudo user12
ساخت یوزر با دسترسی روت در لینوکس با اعطای مجوز sudo

در توزیع‌های CentOS، فدورا و RHEL نیز برای انجام همین کار از دستور زیر استفاده می‌کنیم:

sudo useradd -G wheel user12

دستورهای فوق یک یوزر جدید با نام کاربری user12 ایجاد می‌کنند و آن را به گروه sudo یا wheel اضافه می‌کنند. به این ترتیب یوزر جدید دارای دسترسی روت خواهد بود.

چنانچه بخواهیم این دسترسی را به یوزری که پیش از این ایجاد شده است بدهیم با استفاده از دستور usermod

  آن یوزر را به گروه sudo یا wheel اضافه می‌کنیم. مثلا اگر بخواهیم یوزر با نام کاربری user13 را به گروه sudo اضافه کنیم از دستور زیر استفاده می‌کنیم:

sudo usermod -aG sudo user13

 تغییر تنظیمات پیش‌فرض دستور useradd

با وارد کردن دستور زیر می‌توانیم تنظیمات پیش‌فرض مربوط به دستور useradd را ببینیم:

sudo useradd -D

مثالی از اجرای دستور فوق را در تصویر زیر می‌بینید:

بررسی مقادیر پیش‌فرض دستور useradd برای ساخت یوزر جدید در لینوکس

در تصویر بالا می‌بینیم که دستور useradd تا زمانی که مسیر شل لاگین به صراحت برای یک یوزر خاص مشخص نشود، به صورت پیش‌فرض از مسیر /bin/sh

   استفاده می‌کند. همچنین می‌بینیم که دایرکتوری‌های home برای یوزرهای جدید در مسیر /home

 ایجاد می‌شوند. برای تغییر مقادیر پیش‌فرض دستور useradd پس از نشانه -D

  از نشانه مربوط به فیلدی که قصد تغییر آن را داریم استفاده می‌کنیم و پس از آن مقدار جدید آن فیلد را وارد می‌کنیم. در جدول زیر نشانه‌هایی را می‌بینیم که در این قسمت می‌توانیم از آن‌ها استفاده کنیم:

نشانه کارکرد
-b مسیر پیش‌فرض که به عنوان پیشوند دایرکتوری‌های home استفاده می‌شود.
-e تاریخ انقضای پیش‌فرض برای یوزرهای جدید.
-f تعداد روزهایی که پس از منقضی شدن رمز عبور یوزر غیرفعال می‌شود و فرصت دارد تا رمز عبور جدید انتخاب کند.
-g شناسه گروهی که در صورت ساخت یوزر با نشانه -N

 به عنوان گروه اصلی یوزر انتخاب می‌شود.

-s مسیر شل لاگین پیش‌فرض.

به این ترتیب اگر بخواهیم همه یوزرهای جدید به صورت پیش‌فرض از dash به عنوان شل لاگین استفاده کنند، باید دستور زیر را اجرا کنیم:

sudo useradd -D -s /usr/bin/dash

پس از اجرای دستور بالا همه یوزرهای جدید که با استفاده از دستور useradd ایجاد می‌شوند به صورت پیش‌فرض از dash به عنوان شل لاگین استفاده می‌کنند. دقت کنید که ممکن است مسیر dash در سیستم شما متفاوت باشد. برای بررسی مسیر آن می‌توانید از دستور زیر استفاده کنید:

whereis dash

پس از این که مقدار پیش‌فرض شل لاگین را برای دستور useradd تغییر دادید، با استفاده از این دستور یک یوزر جدید بسازید و در فایل passwd مسیر شل لاگین را برای یوزر جدید بررسی کنید. در انتها شل لاگین پیش‌فرض را به مقدار اولیه بازگردانید.

تغییر ساختار پیش‌فرض دایرکتوری home یوزرهای جدید

مجددا به تصویر خروجی دستور useradd -D

 دقت کنید. در این خروجی پارامتری با نام SKEL را می‌بینیم که مقدار پیش‌فرض آن معمولا /etc/skel

  است. محتویات این مسیر پس ساخت دایرکتوری home برای یوزر جدید در دایرکتوری home کپی می‌شوند. برای بررسی محتویات این دایرکتوری می‌توانید با دستور cd در لینوکس دایرکتوری فعال را به این دایرکتوری تغییر بدهید و سپس از دستور ls برای بررسی محتویات آن استفاده کنید. برای انجام این کار دستورهای زیر را به ترتیب در ترمینال لینوکس وارد کنید:

cd /etc/skel

و پس از آن:

ls -al

فایل‌هایی که در خروجی دستور بالا می‌بینید بلافاصله پس از ساخت دایرکتوری home برای یوزرهای جدید توسط دستور useradd در دایرکتوری home کپی می‌شوند. در صورتی که مقدار پارامتر SKEL در سیستم شما متفاوت است همان مقدار را به جای مسیر /etc/skel

 در دستورهای بالا وارد کنید.

فرض کنید بخواهیم همه یوزرهای جدید به صورت پیش‌فرض دایرکتوری‌های Documents، Pictures و Downloads را در دایرکتوری home خود داشته باشند. برای انجام این کار می‌توانید این دایرکتوری‌ها را مسیر /etc/skel

  یا هر مسیر دیگری که از بررسی پارامتر SKEL به دست آوردید بسازید. دستور زیر این کار را انجام می‌دهد. دقت کنید پیش از اجرای دستورهای زیر با استفاده از دستور cd دایرکتوری فعال کنونی را به مسیری که از بررسی پارامتر SKEL به دست آورده‌ایم تغییر دادیم:

sudo mkdir Documents Downloads Pictures

حالا پس از این که با استفاده از دستور useradd و نشانه -m

 یک یوزر جدید ایجاد کنیم خواهیم دید که دایرکتوری home یوزر جدید حاوی دایرکتوری‌هایی که در بالا ایجاد کردیم خواهد بود. برای حذف دایرکتوری‌هایی که در مثال بالا ایجاد کردید از دستور زیر استفاده کنید:

sudo rm -rd Documents Downloads Pictures

تنظیمات پیش‌فرض دستور useradd در فایل /etc/default/useradd

  ذخیره شده‌اند. با ویرایش این فایل نیز می‌توانید تنظیمات پیش‌فرض را تغییر دهید.

تغییر تنظیمات پیش‌فرض دستور adduser در لینوکس

تنظیمات پیش‌فرض دستور adduser در فایل /etc/adduser.conf

 ذخیره شده‌اند. با بررسی این فایل می‌توانید مشخصه‌های مختلفی را ببینید که امکان شخصی‌سازی رفتار پیش‌فرض دستور adduser را فراهم می‌کنند. در جدول زیر نام متغیرهای پرکاربرد در این فایل و کارکرد آن‌ها را می‌بینید:

نام متغیر کارکرد
DSHELL شل لاگین پیش‌فرض برای یوزر جدید.
DHOME دایرکتوری والد دایرکتوری‌های home که برای یوزرهای جدید ایجاد خواهند شد.
SKEL مسیر دایرکتوری الگو برای دایرکتوری home یوزرهای جدید. مانند متغیر SKEL در تنظیمات useradd.
FIRST_SYSTEM_UID ابتدای بازه‌ای که شناسه یوزرهای سیستم از میان آن انتخاب می‌شوند.
LAST_SYSTEM_UID انتهای بازه‌ای که شناسه یوزرهای سیستم از میان آن انتخاب می‌شوند.
FIRST_SYSTEM_GID ابتدای بازه‌ای که شناسه گروه‌های سیستم از میان آن انتخاب می‌شوند.
LAST_SYSTEM_GID انتهای بازه‌ای که شناسه گروه‌های سیستم از میان آن انتخاب می‌شوند.
FIRST_UID ابتدای بازه‌ای که شناسه یوزرهای معمولی از میان آن انتخاب می‌شوند.
LAST_UID انتهای بازه‌ای که شناسه یوزرهای معمولی از میان آن انتخاب می‌شوند.
FIRST_GID ابتدای بازه‌ای که شناسه گروه‌های معمولی از میان آن انتخاب می‌شوند.
LAST_GID انتهای بازه‌ای که شناسه گروه‌های معمولی از میان آن انتخاب می‌شوند.
USERGROUPS در صورتی که مقدار آن yes باشد همراه با هر یوزر جدید یک گروه جدید ایجاد می‌شود.
USERS_GID شناسه گروهی که در صورت ایجاد نشدن گروه مخصوص یوزر به عنوان گروه اصلی یوزر انتخاب خواهد شد.
DIR_MODE مجوزهای دسترسی پیش‌فرض برای دایرکتوری home متعلق به یوزر جدید.
EXTRA_GROUPS گروه‌های اضافه‌ که با نشانه –add_extra_groups

  یوزر جدید به آن‌ها افزوده می‌شود.

 

می‌توانید از ابزار nano برای ویرایش این فایل استفاده کنید. در نظر داشته باشید برای ویرایش این فایل باید ابزار nano را با استفاده از دستور sudo در لینوکس اجرا کنید.

خلاصه مطلب

در این مطلب از مجله فرادرس دیدیم که هر دو دستور adduser و useradd ابزارهایی قدرتمند برای ساخت یوزر جدید در لینوکس هستند و طی مثال‌هایی شیوه‌های مختلف استفاده از هرکدام را بررسی کردیم. در این مثال‌ها دیدیم که اغلب مواقع استفاده از ابزار adduser ساده‌تر است. علاوه بر سادگی، این دستور به طور خودکار یوزر جدید را با رمز عبوری که شما انتخاب می‌کنید فعال می‌کند و دایرکتوری home مربوط به این یوزر را نیز می‌سازد و مطابق مقداری که در فایل تنظیمات دستور adduser مشخص شده است مجوزهای دسترسی به این دایرکتوری را نیز تعیین می‌کند.

به دلیل اجرای خودکار این فرآیند‌ها است که حتی راهنمای رسمی دستور useradd نیز به مدیران سیستم توصیه کرده است که تا حد امکان از ابزار adduser به جای ابزار useradd استفاده کنند. البته بر خلاف ابزار useradd که در همه توزیع‌های لینوکس به صورت پیش‌فرض در دسترس است، ممکن است ابزار adduser به صورت پیش‌فرض نصب نباشد. شیوه‌ی بررسی نصب بودن ابزار adduser و همچنین شیوه‌ی نصب کردن آن را نیز در توزیع‌های مختلف لینوکس مرور کردیم.

با فایل‌های passwd و shadow آشنا شدیم و یاد گرفتیم محتویات آن‌ها را چطور تفسیر کنیم. همچنین شیوه‌ی جستجو برای رکوردهای یک یوزر مشخص در این فایل‌ها را نیز بررسی کردیم.

لازم است این نکته را یادآوری کنیم که در همه مثال‌هایی که از دستور useradd استفاده کرده‌ایم، پس از اجرای فرمان useradd باید با استفاده از دستور passwd برای یوزر جدید رمز عبور انتخاب کنیم تا این یوزر فعال شود، در غیر این صورت امکان استفاده از یوزر ساخته شده وجود ندارد.

جدول دستورهای پرکاربرد

در جدول زیر دستورهایی که یاد گرفتیم و کارکرد هرکدام را مرور می‌کنیم:

دستور کارکرد
sudo useradd username ساخت یوزر جدید بدون ساختن دایرکتوری home
sudo adduser –no-create-home
sudo useradd -m username ساخت یوزر با دایرکتوری home
sudo adduser username
sudo useradd -m -d /custom/path username ساخت یوزر با دایرکتوری home در مسیر مشخص شده
sudo adduser –home /custom/path username
sudo useradd -u x username ساخت یوزر با شناسه مشخص x.
sudo adduser –uid x username
sudo useradd -g group username ساخت یوزر و انتخاب گروه مشخص شده به عنوان گروه اصلی.
sudo adduser –gid goup_id username
sudo adduser –ingroup group username
sudo useradd -G group1,group2 username ساخت یوزر و افزودن آن به گروه‌های مشخص شده.
sudo adduser username –add_extra_groups
sudo useradd -s /shell/path username ساخت یوزر و انتخاب شل مشخص شده به عنوان شل لاگین.
sudo adduser –shell /shell/path username
sudo useradd -e YY-MM-DD username ساخت یوزر دارای تاریخ انقضا.
sudo useradd -r username ساخت یوزر سیستم.
sudo adduser –system username
sudo useradd -G sudo username ساخت یوزر با دسترسی روت در اوبونتو و دبیان
sudo useradd -G wheel username ساخت یوزر با دسترسی روت در فدورا و CentOS
sudo usermod -aG sudo username اعتای دسترسی روت به یوزر در اوبونتو و دبیان
sudo usermod -aG wheel username اعتای دسترسی روت به یوزر در فدورا و CentOS

همچنین به خاطر داشته باشید که مانند سایر دستورهای لینوکس هر زمان که نیاز داشته باشید با استفاده از دستورهای man adduser

  و man useradd

 می‌توانید راهنمای دستور adduser و useradd را در ترمینال لینوکس ببینید.

source

توسط elmikhabari.ir