اتاق برنامه نویسی </>
405 subscribers
63 photos
1 video
7 links
📌 کانال آموزش لاراول
@PapiDon_state
Download Telegram
اتاق برنامه نویسی </>
Photo
📂 دستورات فایل و دایرکتوری :

🔹ls: فهرست بندی محتویات یک دایرکتوری
🔹pwd: نمایش مسیر کامل دایرکتوری کاری فعلی
🔹cd: تغییر دایرکتوری جاری به مکان دیگر
🔹mkdir: ایجاد یک دایرکتوری جدید
🔹mv: جابجایی یا تغییر نام فایل/دایرکتوری
🔹cp: کپی فایل یا دایرکتوری
🔹rm: حذف فایل یا دایرکتوری
🔹touch: ایجاد یا به روزرسانی زمان فایل‌ها
🔹cat: نمایش محتوای فایل
🔹tar: فشرده‌سازی و بایگانی فایل‌ها

🔎 دستورات متن و جستجو :

🔸grep: جستجوی الگو در فایل‌ها
🔸echo: نمایش یک خط متن
🔸less: مرور محتوای فایل‌ها صفحه به صفحه
🔸diff: مقایسه محتوای دو فایل
🔸find: جستجوی فایل‌ها در دایرکتوری

⚙️ دستورات مدیریت سیستم و شبکه :

🔹kill: بستن یک پروسه با PID مشخص
🔹df: نمایش فضای استفاده شده و باقی‌مانده در فایل‌سیستم
🔹mount: اتصال فایل‌سیستم‌ها به دایرکتوری‌ها
🔹chmod: تغییر دسترسی‌های فایل یا دایرکتوری
🔹chown: تغییر مالکیت فایل یا دایرکتوری

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

🔸apt, pacman, yum, rpm: مدیریت بسته‌های نرم‌افزاری در توزیع‌های مختلف لینوکس
🔸sudo: اجرای دستور با دسترسی مدیر سیستم (root)

💻 دستورات کاربردی دیگر :

🔹man: نمایش راهنمای دستورات
🔹zip/unzip: فشرده‌سازی و بازکردن فایل‌های زیپ
🔹ssh: اتصال امن به یک سیستم دیگر از راه دور
🔹ps: نمایش پروسه‌های در حال اجرا
🔹top: نمایش اطلاعات زنده در مورد پروسه‌ها و مصرف منابع سیستم


📁 #Linux

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
3👍1
اتاق برنامه نویسی </>
Photo
🔔 راهنمای پارتیشن‌بندی هارد در لینوکس

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

🔵 پارتیشن اولیه (Primary Partition):

- اینجا جاییه که می‌توانید سیستم عامل‌تون رو نصب کنید.

- در یک هارد دیسک، فقط می‌توانید حداکثر چهار پارتیشن اولیه داشته باشید.

- اگر می‌خواهید بیش از یک سیستم عامل داشته باشید، پارتیشن اولیه برای این کار مناسب است.

🔵 پارتیشن توسعه‌یافته (Extended Partition):

- به خاطر محدودیت پارتیشن‌های اولیه، پارتیشن توسعه‌یافته به وجود آمده.

- این نوع پارتیشن به عنوان یک کانتینر برای پارتیشن‌های منطقی عمل می‌کنه و مستقیما حاوی داده نیستند.

- شما می‌توانید درون یک پارتیشن توسعه‌یافته، چندین پارتیشن منطقی ایجاد کنید.

🔵 پارتیشن منطقی (Logical Partition):

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

- اینها داخل پارتیشن Extended قرار می‌گیرند.

- اگر به فضای ذخیره‌سازی بیشتری نیاز دارید، پارتیشن‌های منطقی گزینه خوبی هستند.

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

📁 #Linux


کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👏21
اتاق برنامه نویسی </>
Photo
💻 راهنمای نصب لینوکس در ویندوز با استفاده از WSL (Windows Subsystem for Linux)

🎯 این راهنما به شما کمک می‌کند تا به راحتی یک توزیع لینوکس را در محیط ویندوز خود با استفاده از Windows Subsystem for Linux (WSL) نصب کنید - بدون نیاز به استفاده از ماشین‌های مجازی سنگین!

🛠 مرحله 1: فعال‌سازی WSL در ویندوز

1️⃣ باز کردن PowerShell به عنوان مدیر (Administrator)

- روی دکمه استارت راست‌کلیک کنید و Windows PowerShell (Admin) را انتخاب کنید.

2️⃣ اجرای دستور زیر برای فعال‌سازی WSL


wsl --install


- این دستور، WSL را به همراه توزیع پیش‌فرض Ubuntu نصب می‌کند.

3️⃣ ریستارت کامپیوتر

- پس از اتمام نصب، سیستم خود را ریستارت کنید.


🐧 مرحله 2: بررسی و انتخاب توزیع لینوکس

4️⃣ بررسی توزیع‌های موجود

- پس از ریستارت، PowerShell را باز کرده و دستور زیر را اجرا کنید:

     
wsl --list --online


- لیست توزیع‌های قابل نصب نمایش داده می‌شود.

5️⃣ انتخاب و نصب توزیع دلخواه

- برای نصب توزیع مورد نظر، مثلاً Ubuntu، دستور زیر را وارد کنید:


wsl --install -d Ubuntu


🔑 مرحله 3: تنظیم حساب کاربری لینوکس

6️⃣ ایجاد نام کاربری و رمز عبور

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

- نام کاربری را وارد کنید (مثلا ali).
- رمز عبور را ایجاد کرده و تأیید کنید.


⚙️ مرحله 4: شروع به کار با لینوکس

7️⃣ استفاده از توزیع لینوکس

- پس از اتمام تنظیمات، شما می‌توانید از توزیع لینوکس خود در محیط WSL استفاده کنید.

- دستورات لینوکس را می‌توانید مستقیماً در این ترمینال اجرا کنید.


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




📁 #Linux #Windows

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه‌نویسی
📌 @PapiDon_coding
👍5🔥1
اتاق برنامه نویسی </>
Photo
تفاوت بین استفاده از Windows Subsystem for Linux (WSL) و ماشین‌های مجازی (VMs) برای اجرای لینوکس در ویندوز در چند جنبه اصلی خلاصه می‌شود:

1️⃣ 🏃 عملکرد و کارایی

🔸 WSL:

- ارائه عملکرد بالاتر و استفاده بهینه‌تر از منابع سیستم، زیرا WSL مستقیماً روی سیستم عامل میزبان اجرا می‌شود و نیازی به شبیه‌سازی کل سخت‌افزار ندارد.
- واکنش سریع‌تر و زمان بارگذاری کمتر نسبت به ماشین‌های مجازی.

🔹ماشین‌های مجازی:

- ممکن است کمی کندتر از WSL باشند چون نیاز به شبیه‌سازی یک سیستم کامل سخت‌افزاری دارند.
- استفاده بیشتر از منابع سیستم، مخصوصاً در زمینه حافظه و پردازنده.

2️⃣ 📦 مدیریت منابع

🔸 WSL:

- به طور خودکار منابع سیستم را مدیریت می‌کند و به اندازه نیاز منابع را تخصیص می‌دهد.
- اشغال فضای کمتر در هارد دیسک نسبت به یک VM کامل.

🔹ماشین‌های مجازی:

- نیاز به تخصیص دستی منابع دارند، مانند تعیین مقدار حافظه RAM و فضای دیسک.
- ممکن است فضای بیشتری را در هارد اشغال کنند.

3️⃣ ⚙️ تعامل با سیستم عامل میزبان

🔸 WSL:

- امکان دسترسی و تعامل آسان با فایل‌های ویندوز.
- اجرای برنامه‌های ویندوز و لینوکس به طور هم‌زمان و بدون مشکل.

🔹ماشین‌های مجازی:

- محیط کاملاً جدا از سیستم عامل میزبان.
- نیاز به راه‌اندازی سیستم‌های فایل مجزا و انتقال فایل بین میزبان و مهمان.

4️⃣ 🔧 راه‌اندازی و نگهداری

🔸 WSL:

- راه‌اندازی سریع و ساده‌تر.
- نیاز به نگهداری کمتر و به‌روزرسانی‌های ساده‌تر از طریق ویندوز.

🔹ماشین‌های مجازی:

- راه‌اندازی اولیه ممکن است پیچیده‌تر و زمان‌بر باشد.
- نیاز به نگهداری دوره‌ای مانند به‌روزرسانی‌های سیستم عامل مهمان.

5️⃣ 🔄 انعطاف‌پذیری

🔸 WSL:

- محدود به توزیع‌های لینوکسی که توسط مایکروسافت پشتیبانی می‌شوند.

🔹ماشین‌های مجازی:

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


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



📁 #Linux #Windows

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه‌نویسی
📌 @PapiDon_coding
👍41🔥1
اتاق برنامه نویسی </>
Photo
📘 آموزش کامل دستور ps در لینوکس

🔸 مقدمه

دستور ps مخفف "Process Status" است. این دستور برای نمایش اطلاعات مربوط به پروسه‌های فعال در سیستم‌عامل لینوکس استفاده می‌شود. با ps، شما می‌توانید اطلاعات مانند شناسه پروسه (PID)، زمان استفاده از CPU، وضعیت پروسه و دیگر جزئیات را مشاهده کنید.

🛠 گزینه‌های رایج دستور ps

1️⃣-e یا --every:

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

مثال: ps -e

2️⃣-f یا --full:

نمایش اطلاعات کامل در مورد هر پروسه، از جمله UID، PID، PPID، و زمان شروع.

مثال: ps -f

3️⃣-u [کاربر]:

نمایش پروسه‌های مربوط به یک کاربر مشخص.
مثال: ps -u root

4️⃣-p [PID]:

نمایش اطلاعات یک پروسه خاص با استفاده از شناسه پروسه (PID).

مثال: ps -p 1234

5️⃣--sort [فیلد]:

مرتب‌سازی خروجی بر اساس فیلد مشخص (مثل CPU, MEM).

مثال: ps --sort -%mem

6️⃣-l یا --long:

نمایش اطلاعات بیشتر برای هر پروسه، مانند اولویت و (NI).

مثال: ps -l

7️⃣-H یا --forest:

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

مثال: ps -H

8️⃣-o [فیلد]:

انتخاب فیلدهای خاص برای نمایش. می‌توانید فیلدهای دلخواه خود را مشخص کنید، مانند pid, user, command.

مثال: ps -o pid,user,command

9️⃣-t [TTY]:

نمایش پروسه‌های متصل به یک ترمینال خاص (TTY).

مثال: ps -t pts/0

🔟-c:
نمایش نام کلاس کنترلر پروسه‌ها.
مثال: ps -c

*️⃣--no-headers:

نمایش خروجی بدون سرصفحه‌های ستون، مفید برای استفاده در اسکریپت‌ها.

مثال: ps -e --no-headers

نکات کلیدی برای استفاده از ps

- ترکیب گزینه‌ها: شما می‌توانید چندین گزینه را با هم ترکیب کنید تا اطلاعات دقیق‌تر و متناسب با نیاز خود را به دست آورید.

مثلا ps -u root -o pid,command، پروسه‌های کاربر روت را با شناسه و دستور اجرایی نشان می‌دهد.

- خروجی قابل خواندن: استفاده از گزینه‌هایی مانند f- و l- خروجی را با جزئیات بیشتر و قابل فهم‌تر نمایش می‌دهد.

- استفاده در اسکریپت‌ها: با استفاده از گزینه‌های مانند no-headers-- و sort--, می‌توانید خروجی را به صورتی منظم و مفید برای پردازش در اسکریپت‌ها آماده کنید.

🌟 خلاصه

دستور ps یکی از ابزارهای پرکاربرد در محیط لینوکس است که به شما اجازه می‌دهد تا با دقت و جزئیات بالا، اطلاعات مربوط به پروسه‌های در حال اجرا را بررسی و مدیریت کنید.



📁 #Linux

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه‌نویسی
📌 @PapiDon_coding
👍41
اتاق برنامه نویسی </>
Photo
Namespace in Linux

در لینوکس یک ویژگی از هسته لینوکس است که به فرآیندها (Processes) امکان می‌دهد تا فقط بخشی از سیستم‌عامل و منابع موجود را ببینند. این به‌طور موثری اجازه می‌دهد که هر فرآیند فکر کند که بر روی یک سیستم مستقل و اختصاصی در حال اجرا است.

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

⁉️ چرا Namespace ها مهم هستند؟

برای ایجاد ایزولاسیون بین فرآیندهای در حال اجرا در یک سیستم عامل واحد استفاده می‌شوند. این ایزولاسیون به مدیریت بهتر منابع و امنیت سیستم کمک می‌کند.

انواع Namespace در لینوکس:

1️⃣ PID Namespace:
ایزوله کردن فرآیندهای سیستم. هر PID namespace دارای مجموعه‌ای منحصر به فرد از شناسه‌های فرآیند است.

2️⃣ Network Namespace:
ایزوله کردن منابع شبکه. فرآیندهای داخل یک Network Namespace فقط می‌توانند اجزای شبکه‌ای را که به آن‌ها اختصاص داده شده ببینند، مانند اینترفیس‌ها، جداول مسیریابی، و آدرس‌های IP.

3️⃣ Mount Namespace:
ایزوله کردن نقاط اتصال فایل سیستم. این امر به فرآیندها اجازه می‌دهد که نمایی منحصر به فرد از ساختار فایل سیستم داشته باشند.

4️⃣ UTS Namespace:
ایزوله کردن نام سیستم و نام دامنه. تغییرات در یک UTS Namespace تأثیری بر سایر Namespace‌ها ندارد.

5️⃣ User Namespace:
ایزوله کردن شناسه‌های کاربر و گروه. یک فرآیند می‌تواند دارای دسترسی‌های ریشه (root) در یک User Namespace باشد، بدون آنکه بر دیگر Namespace‌ها تأثیر بگذارد.

6️⃣ IPC Namespace:
ایزوله کردن سازوکارهای بین فرآیندی (Inter-process communication) مانند صف‌های پیام و حافظه مشترک.

⚙️ چگونه Namespace ها به داکر کمک می‌کنند؟

در داکر، Namespace ها بخش کلیدی برای فراهم کردن ایزولاسیون بین کانتینرها هستند. هر کانتینر می‌تواند دارای Namespace‌های مختلفی باشد که اجازه می‌دهد آنها به طور مجزا از دیگر کانتینرها اجرا شوند. این به ایمن‌سازی کانتینرها کمک می‌کند و مطمئن می‌شود که فعالیت‌های یک کانتینر تأثیری بر دیگر کانتینرها نداشته باشد.

🎲 نتیجه‌گیری:

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



📁 #Linux

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه‌نویسی
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1
🛡 مفهوم DAC
( Discretionary Access Control )

تصور کنید شما صاحب یک خانه هستید و تصمیم می‌گیرید که چه کسانی می‌توانند وارد خانه‌تان شوند یا از وسایل داخل آن استفاده کنند. در سیستم‌های کامپیوتری، DAC (کنترل دسترسی اختیاری) به همین معناست؛ یعنی صاحب فایل‌ها و منابع سیستم می‌تواند تصمیم بگیرد که چه کسانی می‌توانند به آن‌ها دسترسی داشته باشند.

کاربرد DAC چیست؟

- کنترل دسترسی توسط مالک: مالک فایل‌ها و منابع سیستم می‌تواند تصمیم بگیرد که چه کسانی به آن‌ها دسترسی داشته باشند.

- انعطاف‌پذیری: امکان تغییر دسترسی‌ها به سادگی توسط مالک وجود دارد.

- مدیریت کاربران: تعیین و مدیریت دسترسی‌های کاربران به منابع مختلف سیستم.

⚙️ چگونه DAC کار می‌کند؟

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

1️⃣ خواندن (Read - r): امکان مشاهده محتویات فایل یا پوشه.

2️⃣ نوشتن (Write - w): امکان تغییر محتویات فایل یا ایجاد و حذف فایل‌ها در پوشه.

3️⃣ اجرا (Execute - x): امکان اجرای فایل به عنوان برنامه یا دسترسی به محتویات پوشه.

📝 مزایای DAC

🔸 سادگی: پیاده‌سازی و مدیریت آسان.
🔸 انعطاف‌پذیری: مالک می‌تواند به راحتی دسترسی‌ها را تغییر دهد.
🔸کنترل مستقیم: مالک فایل یا پوشه کنترل کاملی بر روی دسترسی‌ها دارد.

🛠 محدودیت‌های DAC

امنیت کمتر: در مقایسه با سیستم‌های کنترل دسترسی اجباری (MAC)، امنیت کمتری دارد زیرا کاربران می‌توانند به طور دلخواه دسترسی‌ها را تغییر دهند.

پیچیدگی در مدیریت زیاد کاربران: در سیستم‌هایی با تعداد کاربران زیاد، مدیریت دسترسی‌ها ممکن است پیچیده شود.

جمع‌بندی

یک روش ساده و موثر برای کنترل دسترسی‌ها در سیستم‌های لینوکسی است که به مالک فایل‌ها اجازه می‌دهد تا به راحتی تعیین کند که چه کسانی می‌توانند به فایل‌ها و پوشه‌هایش دسترسی داشته باشند.



📁 #Linux #DAC

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه‌نویسی
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
اتاق برنامه نویسی </>
🛡 مفهوم DAC ( Discretionary Access Control ) تصور کنید شما صاحب یک خانه هستید و تصمیم می‌گیرید که چه کسانی می‌توانند وارد خانه‌تان شوند یا از وسایل داخل آن استفاده کنند. در سیستم‌های کامپیوتری، DAC (کنترل دسترسی اختیاری) به همین معناست؛ یعنی صاحب فایل‌ها…
☄️ مفهوم MAC

( Mandatory Access Control )

تصور کنید شما مدیر یک شرکت بزرگ هستید و می‌خواهید مطمئن شوید که فقط افراد مشخصی به بخش‌های مختلف شرکت دسترسی دارند. مثلاً تنها کارمندان بخش مالی به اطلاعات مالی دسترسی داشته باشند و بقیه نتوانند به این اطلاعات دسترسی پیدا کنند. در سیستم‌های کامپیوتری، MAC (کنترل دسترسی اجباری) به همین معناست؛ یعنی یک سیاست امنیتی مرکزی که دسترسی به منابع سیستم را کنترل می‌کند و کاربران نمی‌توانند این سیاست‌ها را تغییر دهند.

👀 کاربرد MAC چیست؟

- امنیت بالا: جلوگیری از دسترسی غیرمجاز به اطلاعات حساس.
- کنترل مرکزی: مدیران سیستم می‌توانند سیاست‌های امنیتی را به صورت مرکزی و دقیق تنظیم کنند.
- عدم تغییر توسط کاربران: کاربران نمی‌توانند سیاست‌های دسترسی را تغییر دهند و فقط می‌توانند در چارچوب‌های تعیین شده عمل کنند.

⚙️ چگونه MAC کار می‌کند؟

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

🛡 ماژول‌های معروف MAC در لینوکس

1️⃣ SELinux (Security-Enhanced Linux):

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

2️⃣ AppArmor:

- توسط Novell/SUSE توسعه داده شده و سیاست‌های امنیتی را با استفاده از پروفایل‌ها اعمال می‌کند.
- هر پروفایل می‌تواند دسترسی‌های مجاز یک برنامه را مشخص کند.

3️⃣ SMACK (Simplified Mandatory Access Control Kernel):

- توسط Intel توسعه داده شده و سیاست‌های امنیتی را به صورت ساده‌تری پیاده‌سازی می‌کند.
- برچسب‌های امنیتی ساده‌ای برای کنترل دسترسی‌ها استفاده می‌شود.

🗂 مثالی از MAC در لینوکس

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

مثال:
فرض کنید یک فایل به نام secure_file.txt دارید. در حالت عادی (بدون MAC)، مالک فایل می‌تواند دسترسی‌ها را تعیین کند:

-rw-r--r-- 1 user group 0 May 17 12:00 secure_file.txt


اما با فعال بودن SELinux، سیاست‌های امنیتی بیشتری اعمال می‌شود. مثلاً سیاست SELinux ممکن است بگوید که تنها برنامه‌های خاصی می‌توانند به این فایل دسترسی داشته باشند، حتی اگر دسترسی فایل به صورت عمومی تنظیم شده باشد.

🔼 مزایای MAC

- امنیت بالا: با اعمال سیاست‌های دقیق، امنیت سیستم بهبود می‌یابد.
- کنترل مرکزی: مدیران سیستم می‌توانند به صورت مرکزی سیاست‌های امنیتی را کنترل کنند.
- پیشگیری از دسترسی غیرمجاز: جلوگیری از دسترسی غیرمجاز به منابع حساس.

❗️ محدودیت‌های MAC

- پیچیدگی در تنظیمات: پیاده‌سازی و تنظیم سیاست‌های MAC می‌تواند پیچیده و زمان‌بر باشد.
- سختی در تطابق با نیازهای خاص: سیاست‌های عمومی ممکن است نیازهای خاص همه کاربران را پوشش ندهند و نیاز به سفارشی‌سازی داشته باشند.
- نیاز به آموزش و آگاهی بیشتر: کاربران و مدیران سیستم نیاز به آموزش و آگاهی بیشتری برای کار با MAC دارند.

جمع‌بندی

یک روش پیشرفته برای کنترل دسترسی‌ها در سیستم‌های لینوکسی است که با اعمال سیاست‌های امنیتی مرکزی و دقیق، امنیت سیستم را بهبود می‌بخشد. با استفاده از ماژول‌های امنیتی مانند SELinux و AppArmor، مدیران سیستم می‌توانند دسترسی به منابع را به دقت کنترل کنند و از دسترسی غیرمجاز جلوگیری کنند. با این حال، پیچیدگی پیاده‌سازی و نیاز به آموزش‌های بیشتر از جمله چالش‌های استفاده از MAC است.



📁 #Linux #MAC

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه‌نویسی
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1👏1
اتاق برنامه نویسی </>
Photo
⭐️ مفهوم CGroup در لینوکس به زبان ساده

CGroup (Control Group)

یکی از ویژگی‌های مهم در سیستم‌عامل لینوکس است که به شما امکان مدیریت منابع سیستمی مانند CPU، حافظه، دیسک و شبکه را برای گروهی از فرآیندها می‌دهد. این ابزار برای کنترل و محدود کردن استفاده از منابع توسط برنامه‌ها و سرویس‌ها بسیار مفید است.

🖥 مفهوم CGroup :

1️⃣ گروه‌بندی فرآیندها: CGroup به شما این امکان را می‌دهد که فرآیندهای مرتبط را در یک گروه قرار دهید. به عنوان مثال، می‌توانید همه فرآیندهای یک برنامه خاص را در یک گروه بگذارید.

2️⃣ مدیریت منابع: بعد از گروه‌بندی فرآیندها، می‌توانید منابع سیستمی را به آن گروه اختصاص دهید یا محدود کنید. مثلاً می‌توانید تعیین کنید که این گروه از فرآیندها فقط از 20 درصد از CPU استفاده کنند یا بیش از 1 گیگابایت حافظه مصرف نکنند.

3️⃣ نظارت و کنترل: با استفاده از CGroup، می‌توانید مصرف منابع توسط گروه‌های مختلف را نظارت کنید و در صورت نیاز تنظیمات را تغییر دهید تا از استفاده بیش از حد منابع جلوگیری کنید.

کاربردهای CGroup:

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

- بهبود امنیت: با محدود کردن دسترسی به منابع، می‌توانید از رفتارهای مخرب جلوگیری کنید.

- مدیریت سرویس‌ها: در سرورهای بزرگ و پیچیده، می‌توانید سرویس‌های مختلف را با استفاده از CGroup مدیریت و کنترل کنید تا هر کدام منابع مشخصی داشته باشند.

🔖 مثال ساده:

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

- گروهی برای فرآیندهای سرویس وب ایجاد کنید.
- محدودیت‌هایی برای استفاده از CPU و حافظه این گروه تعیین کنید.
- مطمئن شوید که حتی اگر سرویس‌های دیگر منابع زیادی مصرف کنند، سرویس وب شما همچنان منابع کافی برای کار کردن دارد.

🐳 چگونه Docker از CGroup استفاده می‌کند؟

1️⃣ مدیریت منابع: Docker از CGroup برای مدیریت منابع استفاده می‌کند. به این معنا که می‌تواند منابع CPU، حافظه، دیسک و شبکه را برای هر کانتینر به طور جداگانه محدود کند.

2️⃣ ایزوله‌سازی: CGroup به Docker کمک می‌کند تا هر کانتینر را از کانتینرهای دیگر ایزوله کند. این ایزوله‌سازی به اطمینان از اینکه فرآیندهای یک کانتینر نمی‌توانند منابع کانتینرهای دیگر را تحت تأثیر قرار دهند، کمک می‌کند.

3️⃣ نظارت و کنترل: Docker با استفاده از CGroup می‌تواند مصرف منابع هر کانتینر را نظارت کند و در صورت نیاز تنظیمات منابع را تغییر دهد تا از کارایی و پایداری سیستم اطمینان حاصل کند.


نتیجه‌گیری:

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


📁 #Linux #Docker

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه‌نویسی
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
اتاق برنامه نویسی </>
Photo
🖥 حل مشکل دانلود متادیتا برای مخازن CentOS در کانتینر داکر با استفاده از مخازن Vault

🧐هنگامی که تلاش می‌کنید بسته‌ای را در داخل کانتینر CentOS-8 با استفاده از yum نصب کنید، ممکن است با خطای زیر مواجه شوید:

Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist


علت مشکل:

این مشکل به دلیل پایان عمر (EOL) CentOS 8 و عدم دسترسی به مخازن پیش‌فرض CentOS به وجود می‌آید. زمانی که CentOS 8 به پایان عمر خود رسید، مخازن پیش‌فرض آن دیگر به‌روزرسانی نمی‌شوند و دسترسی به آنها ممکن است محدود یا قطع شود. بنابراین نیاز است که از مخازن جایگزین مانند مخازن Vault استفاده کنیم.

⚙️ راه حل:

1️⃣ ایجاد یا ویرایش فایل مخزن

ابتدا باید مخازن Vault را در یک فایل مخزن جدید تنظیم کنیم تا بتوانیم به بسته‌های مورد نیاز دسترسی پیدا کنیم.

- ایجاد یا ویرایش یک فایل مخزن جدید:

vi /etc/yum.repos.d/CentOS-Vault.repo


- اضافه کردن مخازن Vault:

محتوای زیر را در فایل قرار دهید:

[AppStream]
name=CentOS-$releasever - AppStream
baseurl=http://vault.centos.org/8.3.2011/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[BaseOS]
name=CentOS-$releasever - Base
baseurl=http://vault.centos.org/8.3.2011/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[extras]
name=CentOS-$releasever - Extras
baseurl=http://vault.centos.org/8.3.2011/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial


2️⃣ غیرفعال کردن مخازن پیش‌فرض

باید مطمئن شویم که مخازن پیش‌فرض CentOS غیرفعال شده‌اند تا تداخل ایجاد نشود.

- ویرایش فایل‌های مخازن پیش‌فرض:

فایل‌های مخازن پیش‌فرض در مسیر /etc/yum.repos.d/ قرار دارند. به عنوان مثال، فایل‌های زیر را ویرایش کنید:

vi /etc/yum.repos.d/CentOS-Linux-AppStream.repo
vi /etc/yum.repos.d/CentOS-Linux-BaseOS.repo
vi /etc/yum.repos.d/CentOS-Linux-Extras.repo


- غیرفعال کردن مخازن پیش‌فرض:

در هر کدام از این فایل‌ها، خط enabled را به 0 تغییر دهید. به عنوان مثال:

[AppStream]
name=CentOS-$releasever - AppStream
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial


همین تغییر را برای BaseOS و Extras انجام دهید.

3️⃣ پاک کردن کش YUM و به‌روزرسانی

- پاک کردن کش YUM:

yum clean all


- به‌روزرسانی لیست بسته‌ها:

yum makecache


4️⃣ نصب بسته tree

- نصب بسته tree:

حالا باید بتوانید بسته tree را بدون مشکل نصب کنید.

yum install tree


⁉️ پرسش‌های متداول (FAQ)

🤔متادیتا چیست؟

متادیتا شامل اطلاعاتی در مورد بسته‌ها، نسخه‌ها، وابستگی‌ها و سایر جزئیات مرتبط با مخازن نرم‌افزاری است. yum از متادیتا برای جستجو و مدیریت بسته‌ها استفاده می‌کند.

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

بدون دسترسی به متادیتا، yum نمی‌تواند بسته‌های مورد نظر شما را پیدا و نصب کند.

🤓مخازن Vault چیست؟

مخازن Vault شامل نسخه‌های قدیمی‌تر از بسته‌های نرم‌افزاری است که برای نسخه‌هایی از سیستم عامل که به پایان عمر خود رسیده‌اند (EOL) استفاده می‌شود. این مخازن به شما امکان دسترسی به بسته‌های نرم‌افزاری و بروزرسانی‌ها را حتی پس از پایان عمر رسمی نسخه سیستم عامل می‌دهند.

مخازن Vault به شما اجازه می‌دهند تا به نسخه‌های قدیمی‌تر بسته‌ها دسترسی داشته باشید که دیگر در مخازن اصلی موجود نیستند. این مخازن به ویژه برای سیستم‌های قدیمی که به پایان عمر خود رسیده‌اند (EOL) مفید هستند.


📁 #Linux #Docker

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه‌نویسی
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥1
مفهوم Mount کردن در لینوکس به زبان ساده

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

در دنیای کامپیوتر هم، وقتی می‌خواهیم به فایل‌ها و پوشه‌هایی که روی یک دیسک یا پارتیشن (مثل همون کمد لباس‌ها) هستند دسترسی پیدا کنیم، باید اون دیسک یا پارتیشن رو به یک دایرکتوری (مثل همون اتاق شما) Mount کنیم. این کار باعث میشه که کامپیوتر بدونه این دیسک یا پارتیشن رو کجا پیدا کنه و بتونه فایل‌ها رو بخونه و بنویسه.

🧐 چرا باید Mount کنیم؟

1️⃣ دسترسی راحت‌تر به فایل‌ها: مثل وقتی که کمد لباس‌هاتون توی اتاقتون هست، وقتی یک دیسک یا پارتیشن رو Mount می‌کنیم، می‌تونیم راحت‌تر به فایل‌ها دسترسی داشته باشیم.

2️⃣ مرتب و سازمان‌دهی شده: فرض کنید همه لباس‌هاتون توی یک کمد بزرگ و درهم باشند. پیدا کردن یک لباس خاص خیلی سخت میشه. اما اگر کمدهای جداگانه برای هر نوع لباس داشته باشید، پیدا کردنشون خیلی راحت‌تر میشه. در کامپیوتر هم، هر دیسک یا پارتیشن می‌تونه به یک دایرکتوری خاص Mount بشه تا فایل‌ها بهتر سازمان‌دهی بشن.

3️⃣ مدیریت بهتر: وقتی که یک دیسک یا پارتیشن Mount میشه، می‌تونید راحت‌تر بفهمید چقدر فضا استفاده شده و چقدر فضا خالی دارید. این کار مثل این می‌مونه که بدونید چقدر از کمد لباس‌هاتون پر شده و چقدر جا برای لباس‌های جدید دارید.



📁 #Linux

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه‌نویسی
📌 @PapiDon_coding
👏2🔥1