در این مقاله، اهمیت سازماندهی مناسب کاربران لینوکس را بررسی خواهیم کرد. ما حقوق دسترسی را شرح خواهیم داد، از نحوه ایجاد و پیکربندی کاربران شروع می کنیم و با نحوه اعطای دسترسی به فایل ها و پوشه های خاص پایان می دهیم. ما همچنین در مورد برخی ابزارهای امنیتی مهم مانند sudo و SELinux صحبت خواهیم کرد که به محافظت از سیستم در برابر فعالیت های ناخواسته کمک می کنند.
اهمیت مدیریت کاربر و حقوق دسترسی در لینوکس
در دنیای لینوکس، مدیریت کاربران و حقوق دسترسی نقش کلیدی دارند. لینوکس را به عنوان یک آپارتمان بزرگ تصور کنید که در آن هر کاربر یک مستاجر و هر فایل یک اتاق است. مدیریت کاربر مانند اختصاص دادن کلید منحصر به فرد به هر مستاجر است، در حالی که حقوق دسترسی کاری است که آنها میتوانند در اتاق خود انجام دهند.
وقتی یک کاربر ایجاد میشود، به او یک نام و یک شناسه منحصر به فرد ( UID ) اختصاص داده میشود ، مانند کلید شخصی آپارتمان. کاربر همچنین یک گروه دارد که او را با سایر مستاجران متحد میکند. این گروه مانند یک باشگاه است که در آن اعضا از امتیازات مشترکی برخوردارند.
حقوق دسترسی به فایل به سه دسته تقسیم میشوند: مالک ( کاربر )، گروه و سایرین . هر کلید (کاربر) میتواند حقوق منحصر به فرد خود را برای خواندن، نوشتن و اجرا برای هر دسته داشته باشد. به عنوان مثال، مالک فایل ممکن است حقوق خواندن و نوشتن داشته باشد، گروه فقط حق خواندن و سایرین هیچ حقی ندارند.
توجه ویژه به سیاستهای امنیتی مانند sudo و SELinux که در سیستمهای لینوکس استفاده میشوند، شایسته توجه ویژه است. sudo یک دستور ویژه است که به کاربران عادی اجازه میدهد تا به طور موقت از حقوق superuser (root) برای انجام وظایف خاصی که معمولاً فقط در دسترس مدیران سیستم هستند، استفاده کنند. این امر به جلوگیری از خطاهای تصادفی یا سوءاستفاده از حقوق superuser کمک میکند. هنگام استفاده از sudo ، معمولاً از کاربر خواسته میشود رمز عبور خود را برای تأیید هویت خود وارد کند. پس از این، آنها میتوانند دستورات را با حقوق superuser (root) مطابق با قوانین تعیین شده در فایل sudoers اجرا کنند.
SELinux یک لایه امنیتی اضافی برای سیستم عامل لینوکس است. این لایه، برنامهها و فایلهایی را که میتوانند در سیستم استفاده شوند، نظارت میکند و دسترسی به آنها را برای جلوگیری از نفوذ و حملات محدود میکند. این امر با جلوگیری از تلاشهای هک یا اقدامات مخرب، سرور را ایمنتر میکند.
ایجاد و مدیریت کاربران
نحوه ایجاد کاربر در لینوکس
کاربران لینوکس معمولاً با دستور useradd ایجاد میشوند . برای مثال، برای ایجاد کاربری با نام "username"، باید دستور زیر را وارد کنید:
useradd username
نحوه تنظیم رمز عبور کاربر لینوکس
پس از ایجاد کاربر، حساب کاربری او توسط رمز عبور محافظت نمیشود. برای تنظیم رمز عبور برای یک کاربر جدید، از دستور passwd استفاده کنید :
passwd username
جایی که نام کاربری نام کاربری است که رمز عبور برای او تنظیم شده است.
نحوه مشاهده لیست کاربران در لینوکس
برای مشاهده لیستی از کاربران در لینوکس با یک دستور واحد در ترمینال، میتوانید از دستور cut استفاده کنید :
cut -d: -f1 /etc/passwd
این دستور محتویات فایل /etc/passwd را میخواند که شامل اطلاعات مربوط به همه کاربران است.
برای به دست آوردن اطلاعات در مورد یک کاربر خاص، می توانید از دستور زیر استفاده کنید:
id username
این دستور UID ، GID و گروههای کاربر را نمایش میدهد.
حذف یک کاربر لینوکس
برای حذف یک کاربر، از دستور userdel استفاده کنید :
userdel username
با این حال، این دستور فایلهای موجود در دایرکتوری خانگی کاربر را حذف نمیکند. برای حذف آنها، میتوانید از گزینه -r استفاده کنید :
userdel -r username
با این کار نام کاربری به همراه فهرست اصلی و تمام فایل های موجود در آن حذف می شود.
تغییر کاربری لینوکس
برای تغییر اطلاعات مربوط به یک کاربر، از دستور usermod استفاده کنید . این ابزار از سینتکس زیر استفاده میکند:
usermod argument user
یک لیست کامل از آرگومان های ممکن در راهنمای ابزار نمایش داده می شود:
به عنوان مثال، برای تغییر فهرست اصلی کاربر، از دستور زیر استفاده می کنید:
usermod -d /new/path/to/directory username
ایجاد و مدیریت گروه های کاربری در لینوکس
گروههای کاربری در لینوکس به مدیران اجازه میدهند تا کاربرانی با حقوق دسترسی مشابه گروهبندی کنند. این امر مدیریت حقوق دسترسی را تسهیل می کند و امنیت سیستم را با امکان تنظیم حقوق در سطح گروه، به جای انجام این کار برای هر کاربر به صورت جداگانه، افزایش می دهد. به عنوان مثال، گروه توسعه دهندگان را با مدیر کاربر در نظر خواهیم گرفت.
نحوه ایجاد یک گروه کاربری در لینوکس
برای ایجاد یک گروه جدید، از دستور groupadd به همراه نام گروه جدید استفاده کنید:
sudo groupadd group_name
در مثال ما، دستور به شکل زیر است:
sudo groupadd developers
نحوه حذف یک گروه کاربری در لینوکس
برای حذف یک گروه، از دستور groupdel استفاده کنید :
sudo groupdel group_name
بنابراین، دستور:
sudo groupdel developers
گروهی با نام توسعهدهندگان (developers) حذف خواهد شد.
افزودن کاربران به یک گروه
برای اضافه کردن یک کاربر به یک گروه خاص، از دستور usermod استفاده کنید :
sudo usermod -aG group_name user_name
مثلا:
sudo usermod -aG developers admin
این دستور، کاربری با نام admin را به گروه توسعهدهندگان اضافه میکند.
حذف کاربران از یک گروه
برای حذف یک کاربر از یک گروه، از دستور deluser استفاده کنید :
sudo deluser user_name group_name
دستور حذف کاربر admin از گروه توسعهدهندگان :
sudo deluser admin developers
مشاهده لیست گروه ها در لینوکس
برای مشاهده لیست تمام گروههای موجود در سیستم، از دستور cat به همراه فایل /etc/group استفاده کنید :
cat /etc/group
این دستور لیستی از تمام گروه های سیستم را نمایش می دهد.
بررسی عضویت در گروه کاربر
پس از انجام اقدامات، می توانید با استفاده از دستور group بررسی کنید که کاربر به کدام گروه تعلق دارد:
groups user_name
بنابراین، ما اصول مدیریت گروه های کاربر در لینوکس را بررسی کرده ایم. حالا بیایید به مرحله بعدی برویم – بررسی تخصیص حقوق دسترسی به فایل ها و دایرکتوری ها. این فرآیند به شما امکان می دهد تا تعیین کنید که کاربران یا گروه ها چه اقداماتی را در مورد فایل ها و دایرکتوری های خاص انجام دهند و از مدیریت امنیتی موثر و دسترسی به منابع سیستم اطمینان حاصل شود.
تخصیص حقوق دسترسی به فایل ها و دایرکتوری ها
بازنمایی نمادین حقوق دسترسی
همانطور که قبلاً فهمیدیم، در لینوکس ۳ دسته کاربر وجود دارد: مالک ( کاربر )، گروه و سایر . هر یک از آنها ممکن است گروههای خاصی از دسترسی به فایلها یا دایرکتوریها را داشته باشند:
- Read (Read - r): امکان مشاهده محتویات یک فایل یا فهرست را فراهم می کند.
- Write (Write - w): امکان اصلاح یک فایل یا ایجاد فایل جدید در دایرکتوری را فراهم می کند. برای یک دایرکتوری، این اجازه می دهد تا فایل ها را از آن حذف کنید.
- Execute (Execute - x): امکان اجرای فایل (اگر فایل اجرایی باشد) یا ورود به دایرکتوری (اگر دایرکتوری باشد) را می دهد.
در سیستم های خانواده لینوکس، حقوق دسترسی با رشته ای از 10 کاراکتر نشان داده می شود. کاراکتر اول نوع فایل (فایل معمولی، دایرکتوری و غیره) را نشان می دهد و XNUMX کاراکتر باقیمانده سه گروه سه کاراکتری برای هر یک از گروه های کاربری هستند. برای درک، مثالی را در نظر می گیریم.
حقوق دسترسی -rwxr-xr-- به معنی:
- اولین کاراکتر (-) نوع فایل (در این مورد، یک فایل معمولی) را نشان می دهد.
- سه کاراکتر برای مالک (rwx) نشان میدهد که مالک حقوق را خوانده، بنویسد و اجرا کند.
- سه کاراکتر برای گروه (rx) نشان می دهد که اعضای گروه فقط حقوق را خوانده و اجرا می کنند.
- سه کاراکتر برای دیگران (r--) به این معنی است که سایر کاربران فقط می توانند فایل را بخوانند.
حقوق دسترسی با استفاده از دستور chmod تنظیم میشود و نحو آن به شرح زیر است:
chmod [options] mode file(s)
جایی که:
- [گزینه ها] - پارامترهای اضافی، مانند -R برای تغییر بازگشتی حقوق دسترسی در دایرکتوری و زیر شاخه های آن.
- mode - یک رشته خاص که مشخص می کند کدام حقوق دسترسی و برای چه کسی تغییر می کند. حالت را می توان با نمادها (r، w، x) و بیت ها (0 یا 1) مشخص کرد. می توان از مقادیر عددی حالت نیز استفاده کرد (در ادامه در مورد آنها صحبت خواهیم کرد)
- فایل(ها) - فایل ها یا دایرکتوری هایی که تغییرات روی آنها اعمال می شود.
این ابزار یک ابزار کاملا قدرتمند است، بنابراین ما فقط به چند دستور اساسی به عنوان مثال نگاه خواهیم کرد.
حقوق دسترسی به یک فایل را تغییر دهید تا مالک حقوق خواندن و نوشتن داشته باشد، گروه فقط حقوق خواندن داشته باشد و سایر کاربران هیچ حقی نداشته باشند:
chmod u=rw,g=r,o= filename
تنظیم حقوق دسترسی برای همه کاربران برای خواندن و نوشتن در یک فایل:
chmod a+rw filename
تغییر بازگشتی حقوق دسترسی برای همه فایلها و زیر شاخههای یک فهرست:
chmod -R u+rwx directory
نمایش عددی حقوق دسترسی
در نمایش عددی، هر دسته کاربری (مالک، گروه، سایرین) شماره خود را دارد و ترکیب این اعداد حقوق دسترسی نهایی را تعیین می کند. مانند نمادین، هر یک از سه حق دارای ارزش است، اما به صورت عددی:
- خواندن (خواندن) - مقدار 4
- بنویس (نوشتن) - مقدار 2
- اجرا (اجرا) - مقدار 1
از مقادیر عددی نیز برای تعیین نوع کاربر استفاده می شود:
- صاحب فایل (کاربر) - اولین رقم
- گروه مالک (گروه) - رقم دوم
- سایر کاربران (سایر) - رقم سوم
بنابراین، نمایش عددی کامل حقوق دسترسی به فایل شامل سه رقم است که هر کدام مجموع مقادیر حقوق یک دسته کاربری خاص را نشان می دهد. این تا حدودی راحت تر از استفاده از 10 کاراکتر در نمایش نمادین است. مدیریت در این مورد به صورت زیر خواهد بود:
chmod XYZ file
که در آن X ، Y و Z اعدادی هستند که به ترتیب نشاندهندهی حقوق دسترسی مالک، گروه و سایر کاربران میباشند.
به عنوان مثال، برای اعطای حقوق دسترسی کامل به مالک (خواندن، نوشتن و اجرا)، و گروه و سایر کاربران فقط خواندن و اجرا را انجام دهند، میتوانید از دستور استفاده کنید:
chmod 755 file
بیایید نمونه های دیگر را در نظر بگیریم:
chmod 700 file
فقط مالک حق خواندن، نوشتن و اجرا دارد، در حالی که گروه و سایر کاربران هیچ حق دسترسی ندارند.
chmod 644 file
مالک حق خواندن و نوشتن دارد، در حالی که گروه و سایر کاربران فقط حقوق خواندن دارند.
chmod 751 file
مالک حقوق کامل دارد، گروه حقوق خواندن و اجرای آن را دارد و سایر کاربران فقط حقوق اجرا دارند.
همانطور که قبلا ذکر کردیم، این ابزار دارای عملکرد بسیار گسترده است. در برخی موارد، گزینه های موجود در بخش "راهنما" کافی نیستند:
به خط آخر توجه کنید. استفاده از این دستور، مستندات دقیقتری را در مورد این ابزار باز میکند. همچنین میتوانید به صفحه رسمی ویکیپدیای این ابزار مراجعه کنید ، جایی که میتوانید اطلاعات دقیقی در مورد Chmod پیدا کنید.
نتیجه
کاربران لینوکس و مدیریت آنها برای امنیت و عملکرد پایدار سیستم عامل بسیار مهم هستند. در این مقاله، اهمیت مدیریت موثر کاربر و حقوق دسترسی در لینوکس، پوشش ایجاد و مدیریت کاربران، کار با گروههای کاربری و اختصاص حقوق دسترسی به فایلها و دایرکتوریها را برجسته کردهایم.