درس ۳ از ۱۲

کاربر، Group و Permission در Linux

موضوع این درس کاربر، Group و Permission در Linux است؛ اول مفهوم اصلی را ساده روشن می‌کنیم، بعد سراغ نشانه‌ها و ابزارهای بررسی می‌رویم و در پایان می‌بینیم هنگام خطا از کجا باید شروع کنی؛ مثال‌ها را با فضای Server Linux جلو می‌بریم تا موضوع به کار واقعی وصل شود در این درس Linux را از دید یک پشتیبان شبکه بررسی می‌کنیم؛ لازم نیست همه جزئیات سیستم‌عامل را حفظ کنی، اما باید ساختار فایل‌ها، User و Permission، Serviceها، Network و Log را بشناسی؛ هدف این است که قبل از تغییر بدانی کدام Service و فایل درگیر است، از Log شواهد بگیری و تغییر را با حداقل دسترسی و امکان بازگشت انجام بدهی

این درس برای مطالعه کامل نوشته شده است

با حوصله بخوان، مثال‌ها را تحلیل کن و تمرین‌ها را انجام بده؛ هدف حفظ کردن تعریف‌ها نیست

هر فایل یک مالک (مسئول) و یک Group دارد

هر فایل در Linux یک مالک (Owner) و یک Group دارد و Permission برای Owner، Group و Others جدا بررسی می‌شود؛ همین سه بخش پایه تحلیل بسیاری از خطاهای Access Denied در Linux هستند در File Server ویندوز، دسترسی کاربر می‌تواند هم‌زمان تحت تأثیر Share Permission و NTFS Permission باشد و برای تشخیص نتیجه باید هر دو لایه بررسی شوند؛ مدیریت دسترسی از طریق Security Group معمولاً قابل نگهداری‌تر از دادن Permission مستقیم به تعداد زیادی User است؛ Inheritance نیز تعیین می‌کند مجوزها چگونه به زیرپوشه‌ها برسند و تغییر بدون بررسی می‌تواند دسترسی‌های ناخواسته ایجاد کند؛ دسترسی مؤثر باید با یک حساب آزمایشی از دید کاربر هم تأیید شود در Linux مدیریت سرویس‌ها، فایل‌ها، Userها و شبکه بر پایه ابزارها و فایل‌های پیکربندی مشخص انجام می‌شود؛ systemd وضعیت Serviceها و وابستگی آن‌ها را مدیریت می‌کند و journal می‌تواند رویدادهای Kernel، Service و فرایندهای مختلف را ثبت کند؛ Permissionهای فایل از Owner، Group و Other و بیت‌های دسترسی تشکیل می‌شوند و استفاده از sudo باید کنترل‌شده باشد؛ پیش از تغییر باید مسیر فایل پیکربندی، Service مرتبط و Log همان Service شناخته شود

r و w و x مجوزها هستند

r یعنی خواندن، w یعنی نوشتن و x یعنی اجرا یا در Directory اجازه عبور؛ معنی این بیت‌ها برای File و Directory دقیقاً یکسان نیست و باید در شرایط مسیر بررسی شود در File Server ویندوز، دسترسی کاربر می‌تواند هم‌زمان تحت تأثیر Share Permission و NTFS Permission باشد و برای تشخیص نتیجه باید هر دو لایه بررسی شوند؛ مدیریت دسترسی از طریق Security Group معمولاً قابل نگهداری‌تر از دادن Permission مستقیم به تعداد زیادی User است؛ Inheritance نیز تعیین می‌کند مجوزها چگونه به زیرپوشه‌ها برسند و تغییر بدون بررسی می‌تواند دسترسی‌های ناخواسته ایجاد کند؛ دسترسی مؤثر باید با یک حساب آزمایشی از دید کاربر هم تأیید شود در Linux مدیریت سرویس‌ها، فایل‌ها، Userها و شبکه بر پایه ابزارها و فایل‌های پیکربندی مشخص انجام می‌شود؛ systemd وضعیت Serviceها و وابستگی آن‌ها را مدیریت می‌کند و journal می‌تواند رویدادهای Kernel، Service و فرایندهای مختلف را ثبت کند؛ Permissionهای فایل از Owner، Group و Other و بیت‌های دسترسی تشکیل می‌شوند و استفاده از sudo باید کنترل‌شده باشد؛ پیش از تغییر باید مسیر فایل پیکربندی، Service مرتبط و Log همان Service شناخته شود

chmod Permission را تغییر می‌دهد

chmod بیت‌های Permission را تغییر می‌دهد و می‌تواند به‌صورت نمادی مثل u+x یا عددی مثل ۶۴۰ استفاده شود؛ قبل از تغییر گسترده Permission فعلی را با ls -l ثبت کن در File Server ویندوز، دسترسی کاربر می‌تواند هم‌زمان تحت تأثیر Share Permission و NTFS Permission باشد و برای تشخیص نتیجه باید هر دو لایه بررسی شوند؛ مدیریت دسترسی از طریق Security Group معمولاً قابل نگهداری‌تر از دادن Permission مستقیم به تعداد زیادی User است؛ Inheritance نیز تعیین می‌کند مجوزها چگونه به زیرپوشه‌ها برسند و تغییر بدون بررسی می‌تواند دسترسی‌های ناخواسته ایجاد کند؛ دسترسی مؤثر باید با یک حساب آزمایشی از دید کاربر هم تأیید شود در Linux مدیریت سرویس‌ها، فایل‌ها، Userها و شبکه بر پایه ابزارها و فایل‌های پیکربندی مشخص انجام می‌شود؛ systemd وضعیت Serviceها و وابستگی آن‌ها را مدیریت می‌کند و journal می‌تواند رویدادهای Kernel، Service و فرایندهای مختلف را ثبت کند؛ Permissionهای فایل از Owner، Group و Other و بیت‌های دسترسی تشکیل می‌شوند و استفاده از sudo باید کنترل‌شده باشد؛ پیش از تغییر باید مسیر فایل پیکربندی، Service مرتبط و Log همان Service شناخته شود

chown مالک فایل را تغییر می‌دهد

دستور chown مالک (Owner) و در صورت نیاز Group فایل را تغییر می‌دهد؛ تغییر اشتباه مالک فایل‌های یک سرویس می‌تواند باعث شود Process آن سرویس دیگر نتواند فایل را بخواند یا بنویسد در File Server ویندوز، دسترسی کاربر می‌تواند هم‌زمان تحت تأثیر Share Permission و NTFS Permission باشد و برای تشخیص نتیجه باید هر دو لایه بررسی شوند؛ مدیریت دسترسی از طریق Security Group معمولاً قابل نگهداری‌تر از دادن Permission مستقیم به تعداد زیادی User است؛ Inheritance نیز تعیین می‌کند مجوزها چگونه به زیرپوشه‌ها برسند و تغییر بدون بررسی می‌تواند دسترسی‌های ناخواسته ایجاد کند؛ دسترسی مؤثر باید با یک حساب آزمایشی از دید کاربر هم تأیید شود در Linux مدیریت سرویس‌ها، فایل‌ها، Userها و شبکه بر پایه ابزارها و فایل‌های پیکربندی مشخص انجام می‌شود؛ systemd وضعیت Serviceها و وابستگی آن‌ها را مدیریت می‌کند و journal می‌تواند رویدادهای Kernel، Service و فرایندهای مختلف را ثبت کند؛ Permissionهای فایل از Owner، Group و Other و بیت‌های دسترسی تشکیل می‌شوند و استفاده از sudo باید کنترل‌شده باشد؛ پیش از تغییر باید مسیر فایل پیکربندی، Service مرتبط و Log همان Service شناخته شود

۷۷۷ راه‌حل عمومی امن نیست

۷۷۷ راه‌حل عمومی امن نیست Permission ۷۷۷ به همه Read/Write/Execute می‌دهد و معمولاً بیش از نیاز است؛ مسئول، Group و Permission دقیق را بر اساس نقش سرویس تنظیم کن Permission ۷۷۷ به همه اجازه خواندن، نوشتن و اجرا می‌دهد و معمولاً برای حل سریع Access Denied انتخاب خطرناکی است؛ مسئول، Group و مجوز مورد نیاز را دقیق تعیین کن در File Server ویندوز، دسترسی کاربر می‌تواند هم‌زمان تحت تأثیر Share Permission و NTFS Permission باشد و برای تشخیص نتیجه باید هر دو لایه بررسی شوند؛ مدیریت دسترسی از طریق Security Group معمولاً قابل نگهداری‌تر از دادن Permission مستقیم به تعداد زیادی User است؛ Inheritance نیز تعیین می‌کند مجوزها چگونه به زیرپوشه‌ها برسند و تغییر بدون بررسی می‌تواند دسترسی‌های ناخواسته ایجاد کند؛ دسترسی مؤثر باید با یک حساب آزمایشی از دید کاربر هم تأیید شود در Linux مدیریت سرویس‌ها، فایل‌ها، Userها و شبکه بر پایه ابزارها و فایل‌های پیکربندی مشخص انجام می‌شود؛ systemd وضعیت Serviceها و وابستگی آن‌ها را مدیریت می‌کند و journal می‌تواند رویدادهای Kernel، Service و فرایندهای مختلف را ثبت کند؛ Permissionهای فایل از Owner، Group و Other و بیت‌های دسترسی تشکیل می‌شوند و استفاده از sudo باید کنترل‌شده باشد؛ پیش از تغییر باید مسیر فایل پیکربندی، Service مرتبط و Log همان Service شناخته شود

مثال محیط واقعی

فرض کن در Server Linux مشکلی گزارش شده و احتمال می‌دهی به کاربر، Group و Permission در Linux مربوط باشد. قبل از تغییر، وضعیت فعلی را با systemctl، journalctl، ip، ss، df، free و ps بررسی می‌کنی و نتیجه را با یک حالت سالم یا مستند معتبر مقایسه می‌کنی. اگر شواهد فرضیه را تأیید کردند، فقط همان بخش مرتبط را تغییر می‌دهی و بعد همان تست را دوباره اجرا می‌کنی تا مطمئن شوی مشکل واقعاً برطرف شده است

اشتباهات رایج

این اشتباه‌ها را تکرار نکن

  • دستور chown مالک (Owner) و در صورت نیاز Group فایل را تغییر می‌دهد. تغییر اشتباه مالک فایل‌های یک سرویس می‌تواند باعث شود Process آن سرویس دیگر نتواند فایل را بخواند یا بنویسد
  • تغییر دادن تنظیمات مرتبط با کاربر، Group و Permission در Linux قبل از اینکه مطمئن شوی مشکل واقعاً به همین بخش مربوط است
  • نتیجه‌گیری درباره کاربر، Group و Permission در Linux فقط از روی یک نشانه و بدون انجام تست نهایی
تمرین عملی

حالا خودت انجام بده

  1. در یک نمونه آزمایشی مرتبط با کاربر، Group و Permission در Linux، فقط وضعیت فعلی را مشاهده کن و سه نکته‌ای را که برای تشخیص حالت سالم مهم‌اند یادداشت کن
  2. با systemctl، journalctl، ip، ss، df، free و ps وضعیت مرتبط با کاربر، Group و Permission در Linux را بدون تغییر بررسی کن، سه داده واقعی جمع کن و توضیح بده هرکدام چه چیزی به تو می‌گویند
  3. یک خطای فرضی مرتبط با کاربر، Group و Permission در Linux بنویس و مشخص کن اولین تست کم‌خطر تو چیست و چه نتیجه‌ای فرضیه‌ات را رد می‌کند

نکته‌هایی که باید با خودت ببری

  • هر فایل یک مالک (مسئول) و یک Group دارد
  • r و w و x مجوزها هستند
  • chmod Permission را تغییر می‌دهد
  • chown مالک فایل را تغییر می‌دهد
  • ۷۷۷ راه‌حل عمومی امن نیست
  • با root دائمی کار نکن و قبل از ویرایش فایل تنظیمات نسخه برگشت داشته باش
خودسنجی

قبل از رفتن به درس بعد، جواب را برای خودت توضیح بده

این نکته را با یک مثال توضیح بده: هر فایل یک مالک (مسئول) و یک Group دارد. بعد بگو در عمل چطور آن را بررسی می‌کنی.

هر فایل در Linux یک مالک (Owner) و یک Group دارد و Permission برای Owner، Group و Others جدا بررسی می‌شود. همین سه بخش پایه تحلیل بسیاری از خطاهای Access Denied در Linux هستند

این نکته را با یک مثال توضیح بده: r و w و x مجوزها هستند. بعد بگو در عمل چطور آن را بررسی می‌کنی.

r یعنی خواندن، w یعنی نوشتن و x یعنی اجرا یا در Directory اجازه عبور. معنی این بیت‌ها برای File و Directory دقیقاً یکسان نیست و باید در شرایط مسیر بررسی شود

این نکته را با یک مثال توضیح بده: chmod Permission را تغییر می‌دهد. بعد بگو در عمل چطور آن را بررسی می‌کنی.

chmod بیت‌های Permission را تغییر می‌دهد و می‌تواند به‌صورت نمادی مثل u+x یا عددی مثل ۶۴۰ استفاده شود. قبل از تغییر گسترده Permission فعلی را با ls -l ثبت کن

مطالعه درس همیشه عمومی است

برای ذخیره پیشرفت، دوره را رسمی شروع کن

با ثبت‌نام، تکمیل درس‌ها و نمره آزمون روی حساب ذخیره می‌شود

ثبت‌نام و شروع رسمی