از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش مدیریت کاربران و گروه ها در لینوکس Red Hat Enterprise
سرفصلهای مطلب
برای محافظت مؤثر از سیستم خود و تنظیم دسترسی هنگام کار در 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
اگر کاربر با موفقیت اضافه شد، خروجی بالا را مشاهده خواهید کرد. اکنون ممکن است تغییراتی وجود داشته باشد، اما اساساً باید یکسان باشد.
بیایید این خروجی را بشکنیم و سعی کنیم آن را درک کنیم:
- نام کاربری – نام حساب کاربری.
- Password Placeholder (منسوخ شده) – از نظر تاریخی، این فیلد حاوی یک کاراکتر “x” است که نشان می دهد رمز عبور رمزگذاری شده برای کاربر در
/etc/shadow
فایل. - شناسه کاربر (UID) – شناسه عددی منحصر به فرد که به کاربر اختصاص داده می شود.
- شناسه گروه (GID) – شناسه عددی گروه اصلی مرتبط با کاربر.
- اطلاعات کاربر (GECOS) – این قسمت معمولاً شامل اطلاعات اضافی مانند نام کامل کاربر، جزئیات تماس و غیره است روی.
- Home Directory – مسیری که به فهرست اصلی کاربر می رسد.
- Login Shell – پوسته یا برنامه پیشفرض که هنگام ورود به سیستم برای کاربر اجرا میشود.
هنگامی که کاربر ایجاد شد، می توانیم برای آن کاربر رمز عبور تعیین کنیم. این کار را فقط می توان از a انجام داد root حساب.
یک رمز عبور برای یک حساب کاربری جدید ایجاد کنید
passwd kedar
این از شما می خواهد تا رمز عبور کاربر kedar را تایپ کنید. پس از تنظیم رمز عبور، می توانید با استفاده از رابط کاربری گرافیکی به کاربر kedar وارد شوید. اگر می خواهید از طریق رابط کاربری گرافیکی وارد شوید، تنظیم رمز عبور مهم است.
هنگام ایجاد یک کاربر جدید، گزینه های مختلفی را برای کاربر تنظیم کنید
اکنون که می دانیم هنگام ایجاد کاربر چه گزینه هایی در دسترس است، می توانیم آنها را بر اساس نیاز خود تنظیم کنیم.
- شناسه کاربر (
-u
)
useradd -u 1234 kedar
دستور بالا با -u
هنگام ایجاد کاربر kedar، گزینه User ID را روی 1234 تنظیم می کند.
2. گروه اولیه (-g
)
useradd -g 1232 kedar
اگر گروهی وجود دارد و شناسه گروه یا نام گروه را میدانید، میتوانید آن گروه را به عنوان گروه اصلی برای کاربر kedar اضافه کنید.
3. گروه ثانویه (-G
)
useradd -G developers kedar
کاربر kedar به یک گروه ثانویه به نام توسعه دهندگان که از قبل وجود دارد اضافه می شود. ما می توانیم کاربر را به چندین گروه ثانویه اضافه کنیم.
یک گروه ثانویه در لینوکس را به عنوان یک عضویت باشگاهی مورد علاقه کاربران در نظر بگیرید. در حالی که هنگام کار به طور خودکار در یک گروه اولیه قرار می گیرند روی کامپیوتر، پیوستن به گروه های ثانویه به کاربران اجازه می دهد تا عضویت خود را گسترش دهند و به فایل ها و ویژگی های اضافی دسترسی پیدا کنند.
اساساً، مانند این است که به طور همزمان بخشی از چندین گروه باشید و به کاربران امتیازات اضافی و توانایی کاوش در بخشهای مختلف سیستم را ارائه دهید.
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های کاربر نیز وجود دارد:
دایرکتوری /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 دلار MD5 است
- 2 دلار آمریکا Blowfish است
- 2 سال دلار Blowfish است
- 5 دلار SHA-256 است
- 6 دلار SHA-512 است
- $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: مدیریت اولیه کاربر و گروه
- ایجاد کاربران و گروه ها
- استفاده کنید
useradd
برای ایجاد یک کاربر جدید به نام “testuser.” - استفاده کنید
groupadd
برای ایجاد گروهی به نام “testgroup”. - اطمینان حاصل کنید که کاربر “testuser” بخشی از گروه “testgroup” است.
تمرین 2: تغییرات کاربر
- اصلاح ویژگی های کاربر
- استفاده کنید
usermod
برای تغییر پوسته پیش فرض “testuser” به/bin/bash
. - نام ورود کاربر را از “testuser” به “newuser” تغییر دهید
usermod
. - با بررسی تغییرات را تأیید کنید
/etc/passwd
.
تمرین 3: تغییرات گروهی
- تغییرات گروهی
- استفاده کنید
groupmod
برای تغییر نام “TestGroup” به “NewGroup”. - با استفاده از GID (شناسه گروه) “NewGroup” را تغییر دهید
groupmod
. - “Newuser” را با استفاده از “NewGroup” اضافه کنید
usermod
.
تمرین 4: مدیریت پیشرفته کاربر و گروه
- تنظیم محدودیت های کاربر و گروه
- خط مشی های رمز عبور را با استفاده از پارامترها تنظیم کنید
/etc/login.defs
. - تنظیمات پیشفرض گروه مانند GID_MIN و GID_MAX را پیکربندی کنید
/etc/login.defs
.
تمرین 5: درک /etc/shadow
و /etc/skel
- کاوش در ذخیره سازی رمز عبور و پیش فرض
- را بررسی کنید
/etc/shadow
پرونده برای درک فرمت ذخیره رمز عبور. - یک کاربر جدید ایجاد کنید و ورود آنها را مشاهده کنید
/etc/shadow
. - کاوش کنید
/etc/skel
و هدف آن را با ایجاد یک کاربر جدید و مشاهده فهرست اصلی آنها درک کنید.
تمرین 6: چالش
- مدیریت مجوزها و کنترل دسترسی
- مجوزهای دایرکتوری را طوری تنظیم کنید که فقط “newuser” در “newgroup” بتواند در یک پوشه خاص بخواند/بنویسد.
- آزمایش با
chown
وchmod
دستورات تغییر مالکیت و مجوزها.
تمرین 7: سناریوی دنیای واقعی
- ایجاد کاربران با تنظیمات خاص
- یک کاربری به نام “admin” با یک فهرست خانه سفارشی شده (/opt/admin) و یک پوسته پیش فرض خاص ایجاد کنید.
- یک خط مشی رمز عبور تنظیم کنید که فقط برای کاربر «مدیر» اعمال شود.
بسته بندی
از شما برای بررسی روش مدیریت کاربران و گروهها در RHEL با من سپاسگزارم. میتوانید عمیقتر در حوزه تخصص لینوکس غوطهور شوید و در آموزشهای آینده من برای محتوای روشنتر همراه باشید.
میتونی دنبال من بیای روی:
- توییتر
- لینکدین
منتشر شده در 1403-01-09 02:12:05