برای محافظت مؤثر از سیستم خود و تنظیم دسترسی هنگام کار در Red Hat Enterprise Linux (RHEL)، باید مدیریت کاربر و گروه را درک کنید.

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

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

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

پیش نیاز

  • آشنایی با دستورات پایه لینوکس می توانید آموزش قبلی من را بخوانید روی دستورات RHEL و مفاهیم کلیدی در صورت نیاز به اصلاح.

فهرست مطالب

در اینجا چیزی است که ما در این راهنمای جامع پوشش خواهیم داد:

  • useradd
  • چیست sudo?
  • usermod
  • /etc/login.defs چیست؟
  • /etc/skel چیست؟
  • /etc/shadow چیست؟
  • گروه اضافه کردن
  • groupmod
  • تمرین عملی
  • بسته بندی

این useradd فرمان

این useradd دستور یک ابزار ضروری در RHEL برای ایجاد حساب های کاربری جدید است. این دستور نه تنها اطلاعات کاربر را به فایل های سیستم اضافه می کند، بلکه فهرست اصلی و تنظیمات پیش فرض کاربر را نیز تنظیم می کند.

نحو از useradd دستور:

useradd [options] username

چیست sudo?

در دنیای لینوکس/یونیکس، sudo مخفف “Superuser Do” است. در اصل، این دستوری است که به کاربران معمولی این امکان را می دهد که دستورات را با مدیریت کامل یا اجرا کنند root مجوزها این به ویژه برای دستوراتی مفید است که ممکن است به دلایل امنیتی برای کاربران عادی محدود شود.

مثال ها:

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

در حال حاضر، من به عنوان یک وارد شده ام root کاربر. پس من استفاده نخواهم کرد sudo قبل از هر دستوری

ایجاد کاربر:

useradd kedar

این دستور یک کاربر جدید به نام “kedar” می سازد و به طور پیش فرض یک پوشه خانگی برای آنها تنظیم می کند. بعد روی، در مورد آن بیشتر یاد خواهیم گرفت useradd و چگونه می توانیم این پیش فرض ها را تغییر دهیم.

در RHEL، برخی از مقادیر از قبل هنگام ایجاد یک کاربر تنظیم شده اند، اما ما آنها را در این آموزش بیشتر بررسی خواهیم کرد.

یک کاربر تازه اضافه شده را بررسی کنید:

tail -1 /etc/passwd

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

kedar:x:1001:1001:John Doe:/home/john:/bin/bash

اگر کاربر با موفقیت اضافه شد، خروجی بالا را مشاهده خواهید کرد. اکنون ممکن است تغییراتی وجود داشته باشد، اما اساساً باید یکسان باشد.

بیایید این خروجی را بشکنیم و سعی کنیم آن را درک کنیم:

قاب-1000004542
تفکیک خروجی بالا
  1. نام کاربری – نام حساب کاربری.
  2. Password Placeholder (منسوخ شده) – از نظر تاریخی، این فیلد حاوی یک کاراکتر “x” است که نشان می دهد رمز عبور رمزگذاری شده برای کاربر در /etc/shadow فایل.
  3. شناسه کاربر (UID) – شناسه عددی منحصر به فرد که به کاربر اختصاص داده می شود.
  4. شناسه گروه (GID) – شناسه عددی گروه اصلی مرتبط با کاربر.
  5. اطلاعات کاربر (GECOS) – این قسمت معمولاً شامل اطلاعات اضافی مانند نام کامل کاربر، جزئیات تماس و غیره است روی.
  6. Home Directory – مسیری که به فهرست اصلی کاربر می رسد.
  7. Login Shell – پوسته یا برنامه پیش‌فرض که هنگام ورود به سیستم برای کاربر اجرا می‌شود.

هنگامی که کاربر ایجاد شد، می توانیم برای آن کاربر رمز عبور تعیین کنیم. این کار را فقط می توان از a انجام داد root حساب.

یک رمز عبور برای یک حساب کاربری جدید ایجاد کنید

passwd kedar

این از شما می خواهد تا رمز عبور کاربر kedar را تایپ کنید. پس از تنظیم رمز عبور، می توانید با استفاده از رابط کاربری گرافیکی به کاربر kedar وارد شوید. اگر می خواهید از طریق رابط کاربری گرافیکی وارد شوید، تنظیم رمز عبور مهم است.

هنگام ایجاد یک کاربر جدید، گزینه های مختلفی را برای کاربر تنظیم کنید

اکنون که می دانیم هنگام ایجاد کاربر چه گزینه هایی در دسترس است، می توانیم آنها را بر اساس نیاز خود تنظیم کنیم.

  1. شناسه کاربر (-u)
useradd -u 1234 kedar

دستور بالا با -u هنگام ایجاد کاربر kedar، گزینه User ID را روی 1234 تنظیم می کند.

2. گروه اولیه (-g)

useradd -g 1232 kedar

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

3. گروه ثانویه (-G)

useradd -G developers kedar

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

پیشنهاد می‌کنیم بخوانید:  نمای کلی Async IO در پایتون 3.7

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

اساساً، مانند این است که به طور همزمان بخشی از چندین گروه باشید و به کاربران امتیازات اضافی و توانایی کاوش در بخش‌های مختلف سیستم را ارائه دهید.

4. اطلاعات کاربر

useradd -c "2 Month Intern" kedar

این اطلاعات بیشتر به کاربر kedar به عنوان “کارآموز 2 ماهه” اضافه می کند. این در قسمت نمایش داده خواهد شد /etc/passwd فایل.

5. فهرست خانه

useradd -d /etc/kedar/home kedar

حالا این دایرکتوری خانه را روی آن تنظیم می کند /etc/kedar/home برای کاربر kedar. به طور پیش فرض در RHEL، دایرکتوری خانه، اگر مشخص نشده باشد، است /home/kedar.

6. لاگین شل

useradd -s /bin/shell kedar

در اینجا، کاربر kedar به پوسته ای که در /bin/shell است دسترسی خواهد داشت. این به کاربر kedar دسترسی به پوسته را می دهد.

صندوق/bash دسترسی به پوسته پیش فرض کاربر پس از ورود به سیستم مربوط می شود.

در دنیای لینوکس، /bin/bash پوسته معمولاً به عنوان پوسته Bash شناخته می شود که مخفف عبارت Bourne Again SHell است و به راحتی در دسترس است. روی اکثر توزیع های لینوکس هنگامی که به کاربر /bin/ اعطا می شودbash دسترسی، به این معنی است که پس از ورود، با پوسته Bash استقبال خواهند شد command-line رابط.

این پوسته قدرتمند آنها را با توانایی تعامل با سیستم، اجرای دستورات و اجرای اسکریپت های خاص Bash با استفاده از نحو و عملکرد منحصر به فرد خود مجهز می کند.

با توجه به استفاده گسترده، قابلیت های پیشرفته و سازگاری با انواع زبان های برنامه نویسی و command-line وظایف، /bin/bash پوسته برای بسیاری از کاربران به عنوان پوسته پیش فرض آنها یک گزینه ترجیحی است.

اگر می خواهید دسترسی پوسته را از یک کاربر خاص حذف کنید، می توانید دسترسی پوسته را به این صورت تنظیم کنید: /sbin/nologin. این کار دسترسی این کاربر را به ورود به حساب خود محدود می کند تا زمانی که دسترسی پوسته روی آن تنظیم شود /bin/shell.

useradd -s /sbin/nologin kedar

این usermod فرمان

دستور usermod در لینوکس بسیار مهم است. این به مدیران کمک می کند تا به راحتی موارد مربوط به حساب های کاربری را پس از ساخته شدن تغییر دهند. این باعث صرفه جویی در زمان می شود زیرا نیازی به حذف و ایجاد مجدد حساب ها ندارید. این یک راه مفید برای مدیریت کاربران بدون دردسر است.

نحو از usermod دستور:

usermod [options] username

مثال ها:

تغییر نام کاربری:

usermod -l newusername oldusername

این دستور نام کاربری را تغییر می دهد oldusername به newusername.

تغییر شناسه کاربری (UID):

usermod -u <newUID> username

این دستور جایگزین می شود <newUID> با UID جدید مورد نظر برای کاربر.

تغییر شناسه گروه (GID):

usermod -g <newGID> username

این دستور جایگزین می شود <newGID> با شناسه گروه اصلی جدید مورد نظر برای کاربر.

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

usermod -aG group1,group2 username

این دستور کاربر را به گروه های تکمیلی اضافه می کند (group1، group2، و غیره.).

تغییر فهرست اصلی:

usermod -d /newhome username

این دستور فهرست اصلی کاربر را به تغییر می دهد /newhome.

تغییر پوسته پیش فرض:

usermod -s /bin/bash username

این دستور پوسته پیش فرض را برای کاربر تغییر می دهد /bin/bash.

تعیین تاریخ انقضا برای حساب:

usermod -e YYYY-MM-DD username

این دستور تاریخ انقضا (YYYY-MM-DD) برای حساب کاربر.

با استفاده از این دستور می توانید اطلاعات بیشتری کسب کنید man usermod. شما گزینه های مشابه با useradd برای دستکاری اطلاعات یک کاربر هنگام استفاده از usermod فرمان

چیست /etc/login.defs?

این /etc/login.defs فایل یک فایل پیکربندی حیاتی است که پارامترهای پیش‌فرض را برای ورود، سیاست‌های رمز عبور و ایجاد حساب کاربری تنظیم می‌کند. می‌توان آن را در مکان معمولی /etc/login.defs یافت و نقش کلیدی در تعیین پیش‌فرض‌های کل سیستم برای مدیریت کاربر و احراز هویت بازی می‌کند.

همانطور که در جدول زیر نشان داده شده است، یک محدوده ثابت برای UIDهای کاربر نیز وجود دارد:

Frame-1000004563-1
جدول محدوده UID – کاربران ممتاز: 0-99، کاربران سیستم: 201-999، کاربران عادی: 1000-60000

دایرکتوری /etc/login.defs شامل انواع تنظیمات پیش فرض است. با دسترسی به این دایرکتوری می توانیم این تنظیمات را به دلخواه خود تغییر دهیم.

این فایل شامل چندین گزینه مختلف است که می‌توانیم آن‌ها را تنظیم کنیم که برخی از آنها در زیر فهرست شده‌اند:

PASS_MAX_DAYS   90
PASS_MIN_DAYS   7
PASS_WARN_AGE   14
PASS_MIN_LEN    8

UID_MIN         1000
UID_MAX         60000
GID_MIN         1000
GID_MAX         60000

LOGIN_RETRIES   5
LOGIN_TIMEOUT   60
CREATE_HOME     yes
UMASK           077

ENCRYPT_METHOD  SHA512
CHFN_AUTH       yes
CHFN_RESTRICT   rwh
DEFAULT_HOME    /home

اکنون می‌دانید که هنگام ایجاد کاربر، تنظیمات پیش‌فرض از کجا می‌آیند. شما می توانید این تنظیمات را با توجه به نیاز خود تغییر دهید.

چیست /etc/skel?

در لینوکس و سیستم های مشابه، /etc/skel/ پوشه مانند یک بسته شروع برای کاربران جدید است. به آن «اسکل» به اختصار «اسکلت» می‌گویند، زیرا اصول اولیه را برای کاربران جدید تنظیم می‌کند.

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

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

در پوشه /etc/skel/، ممکن است فایل های رایجی مانند .bashrc، .profile و فایل های پیکربندی مشابه را بیابید.

چیست /etc/shadow?

این /etc/shadow فایل یکی از اجزای حیاتی سیستم عامل های مبتنی بر یونیکس (مانند لینوکس) است، زیرا به عنوان یک مخزن برای رمزهای عبور رمزگذاری شده کاربر و سایر داده های مربوط به رمز عبور عمل می کند. این معیار امنیتی پیشرفته از روش‌های قبلی ذخیره رمزهای عبور در فایل /etc/passwd پیشی می‌گیرد.

پیشنهاد می‌کنیم بخوانید:  سه راه برای ایجاد رشته های چند خطی در پایتون

فایل /etc/shadow حاوی اطلاعات مهم مربوط به رمزهای عبور حساب کاربری است. هر خط در فایل یک کاربر خاص را نشان می دهد و به چندین فیلد تقسیم می شود که هر کدام با یک دونقطه (:) از هم جدا شده اند.

این فیلدها معمولاً شامل نام کاربری، رمز عبور رمزگذاری شده (هش شده با استفاده از یک الگوریتم رمزنگاری، نه رمز عبور واقعی)، تعداد روزهای پس از آخرین تغییر رمز عبور (از اول ژانویه 1970)، اطلاعات مربوط به انقضای رمز عبور مانند حداقل و حداکثر است. سن و یک دوره هشدار همچنین تعداد روزهای عدم فعالیت مجاز قبل از قفل شدن حساب و اینکه آیا حساب دارای تاریخ انقضا است را نیز مشخص می کند.

ورودی نمونه فایل /etc/shadow

user:$6$PswrdHash$E7KLkQIGo7mxG5vDi7JelC5D8L0qbg38z1/WgNhAZDpCoe2GyGB6JefT9ftb/Rfm3uZOlFkktj/SkJTfSJziO.:18830:0:90:7:::

جایی که:

  • user: نام کاربری
  • $6$PswrdHash$E7KLkQIG...: هش رمز عبور رمزگذاری شده
  1. 1 دلار MD5 است
  2. 2 دلار آمریکا Blowfish است
  3. 2 سال دلار Blowfish است
  4. 5 دلار SHA-256 است
  5. 6 دلار SHA-512 است
  6. $y$ بله رمز است

این نمادها به شناسایی الگوریتم هش استفاده شده برای هر رمز عبور ذخیره شده در رمز کمک می کنند /etc/shadow فایل. به عنوان مثال، اگر هش رمز عبور را می بینید که با آن شروع می شود $6$، نشان می دهد که رمزگذاری SHA-512 برای آن رمز عبور خاص استفاده شده است.

  • 18830: آخرین تاریخ تغییر رمز عبور (روزها از 1 ژانویه 1970)
  • 0: حداقل سن رمز عبور
  • 90: حداکثر سن رمز عبور
  • 7: دوره هشدار رمز عبور
  • فیلدهای دیگر برای عدم فعالیت حساب و انقضا

دسترسی: به منظور دسترسی و اصلاح /etc/shadow فایل، باید داشته باشید root مجوزهای کاربر یا امتیازات تخصصی داده شده است.

اصلاح: برای افزایش امنیت، توصیه می شود از دستورات تعیین شده مانند passwd، که رمزگذاری رمز عبور را کنترل می کند و فایل /etc/shadow را به طور موثر به روز می کند.

این groupadd فرمان

در RHEL، شما از groupadd دستور ایجاد گروه های جدید روی سیستم. این یک دستور اساسی برای مدیریت گروه‌های کاربر است که به مدیران سیستم اجازه می‌دهد گروه‌ها را اضافه کنند، ویژگی‌های آن‌ها را تنظیم کنند و عضویت خود را تعریف کنند.

همه تنظیمات پیش‌فرض برای گروه‌ها در آن قرار دارند /etc/login.defs. فایل /etc/login.defs حاوی تنظیمات مهمی است، مانند GID_MIN که حداقل مقدار GID را برای گروه‌های معمولی تعیین می‌کند و GID_MAX که حداکثر مقدار GID را تعیین می‌کند. علاوه بر این، SYS_GID_MIN و SYS_GID_MAX حداقل و حداکثر مقادیر GID را برای گروه‌های سیستم تعیین می‌کنند.

این تنظیمات نقش مهمی در مدیریت گروه های درون سیستم ایفا می کنند.

نحو از groupadd دستور:

groupadd [options] groupname

مثال ها:

ایجاد گروه:

groupadd developers

دستور بالا یک گروه جدید به نام “توسعه دهندگان” ایجاد می کند.

اختصاص یک GID خاص:

groupadd -g 1001 developers

این دستور یک گروه با یک GID مشخص (مثلا GID 1001) ایجاد می کند.

با استفاده از man groupadd فرمان این به شما مستنداتی از groupadd فرمان

این groupmod فرمان

این groupmod دستور در RHEL یک ابزار ارزشمند برای مدیران سیستم است، زیرا آنها را قادر می سازد تا بدون زحمت ویژگی های گروه موجود را تغییر دهند.

با استفاده از این دستور قدرتمند، می‌توانید گروه‌ها را بدون نیاز به ایجاد مجدد آن‌ها تغییر دهید و آن را به یک دارایی حیاتی برای نگهداری سیستم تبدیل کنید.

نحو از groupmod دستور:

groupmod [options] groupname

مثال ها:

تغییر نام گروه:

groupmod -n newgroupname oldgroupname

این دستور نام گروه را تغییر می دهد oldgroupname به newgroupname.

تغییر GID (شناسه گروه):

groupmod -g <newGID> groupname

این دستور GID گروه را به تغییر می دهد <newGID>.

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

groupmod -aG group1,group2 groupname

این دستور گروه را به گروه های تکمیلی اضافه می کند (group1، group2، و غیره روی).

افزودن کاربران از یک گروه:

groupmod -m -m user1,user2 developers

با این کار user1 و user2 به گروه توسعه دهندگان اضافه می شود.

حذف کاربران از یک گروه:

groupmod -M user1,user2 developers

با این کار user1 و user2 از گروه توسعه دهندگان حذف می شوند.

با استفاده از man groupmod فرمان این به شما مستنداتی از groupmod فرمان

تمرین عملی

تمرین 1: مدیریت اولیه کاربر و گروه

  1. ایجاد کاربران و گروه ها
  • استفاده کنید useradd برای ایجاد یک کاربر جدید به نام “testuser.”
  • استفاده کنید groupadd برای ایجاد گروهی به نام “testgroup”.
  • اطمینان حاصل کنید که کاربر “testuser” بخشی از گروه “testgroup” است.

تمرین 2: تغییرات کاربر

  1. اصلاح ویژگی های کاربر
  • استفاده کنید usermod برای تغییر پوسته پیش فرض “testuser” به /bin/bash.
  • نام ورود کاربر را از “testuser” به “newuser” تغییر دهید usermod.
  • با بررسی تغییرات را تأیید کنید /etc/passwd.

تمرین 3: تغییرات گروهی

  1. تغییرات گروهی
  • استفاده کنید groupmod برای تغییر نام “TestGroup” به “NewGroup”.
  • با استفاده از GID (شناسه گروه) “NewGroup” را تغییر دهید groupmod.
  • “Newuser” را با استفاده از “NewGroup” اضافه کنید usermod.

تمرین 4: مدیریت پیشرفته کاربر و گروه

  1. تنظیم محدودیت های کاربر و گروه
  • خط مشی های رمز عبور را با استفاده از پارامترها تنظیم کنید /etc/login.defs.
  • تنظیمات پیش‌فرض گروه مانند GID_MIN و GID_MAX را پیکربندی کنید /etc/login.defs.

تمرین 5: درک /etc/shadow و /etc/skel

  1. کاوش در ذخیره سازی رمز عبور و پیش فرض
  • را بررسی کنید /etc/shadow پرونده برای درک فرمت ذخیره رمز عبور.
  • یک کاربر جدید ایجاد کنید و ورود آنها را مشاهده کنید /etc/shadow.
  • کاوش کنید /etc/skel و هدف آن را با ایجاد یک کاربر جدید و مشاهده فهرست اصلی آنها درک کنید.

تمرین 6: چالش

  1. مدیریت مجوزها و کنترل دسترسی
  • مجوزهای دایرکتوری را طوری تنظیم کنید که فقط “newuser” در “newgroup” بتواند در یک پوشه خاص بخواند/بنویسد.
  • آزمایش با chown و chmod دستورات تغییر مالکیت و مجوزها.

تمرین 7: سناریوی دنیای واقعی

  1. ایجاد کاربران با تنظیمات خاص
  • یک کاربری به نام “admin” با یک فهرست خانه سفارشی شده (/opt/admin) و یک پوسته پیش فرض خاص ایجاد کنید.
  • یک خط مشی رمز عبور تنظیم کنید که فقط برای کاربر «مدیر» اعمال شود.

بسته بندی

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

میتونی دنبال من بیای روی: