A long time ago in a galaxy far, far Away, a group of friends set out on a journey... 🚀
🔘 #Memory
[friends@banana ~]$ git init .
🔘 #Memory
🍌8
گاهی وقت لازم هست یک برنامه رو به صورت ایزوله و سندباکس اجرا کنیم. یکی از برنامه هایی که این کار رو انجام میده Firejail هست و هر برنامه رو در یک Namespace جداگانه اجرا میکنه.
طرز کار ساده ایی داره و این امکان رو میده برای هر برنامه پروفایل جداگانه تعریف کنیم و دسترسیهاش رو مشخص و محدود کنیم. برای مثال:
توضیح تنظیمات پروفایل بالا:
🔹 whitelist: دسترسی فقط به مسیرهای مشخص (مثل cache و مسیری که برنامه قرار داره تا بتونه درست کار کنه)
🔹 net none: قطع کامل اینترنت و شبکه
🔹 private / private-tmp: دایرکتوری ها در یک فایل سیستم موقت روی tmp/ ایجاد میشن
🔹 seccomp: محدود کردن syscallهای مهم
🔹 caps.drop all: حذف همه دسترسیهای ویژه (حتی با sudo هم امکان کارهایی مثل mount/unmount رو نداره)
بعد از ساخت و ذخیره پروفایل، اون رو همراه با برنامهایی که میخوایم اجرا کنیم به Firejail میدیم:
توی مخازن اکثر توزیع ها هستش میتونید نصب و استفاده کنید.
🔘 @linux_exp | #Linux #Firejail
Namespace توی لینوکس قابلیتیه برای جداسازی منابع سیستم. هر پردازش داخل فضای مشخص خودش اجرا میشه و دید محدودی نسبت به منابع داره؛ طوری که انگار روی یک سیستم مستقل کار میکنه. این قابلیت برای ایزوله کردن یک پردازش از سایر پردازشهای سیستم مناسبه.
طرز کار ساده ایی داره و این امکان رو میده برای هر برنامه پروفایل جداگانه تعریف کنیم و دسترسیهاش رو مشخص و محدود کنیم. برای مثال:
whitelist /opt/maple
whitelist /home/linux_exp/.maplesoft/
net none
private
private-tmp
seccomp
caps.drop all
توضیح تنظیمات پروفایل بالا:
🔹 whitelist: دسترسی فقط به مسیرهای مشخص (مثل cache و مسیری که برنامه قرار داره تا بتونه درست کار کنه)
🔹 net none: قطع کامل اینترنت و شبکه
🔹 private / private-tmp: دایرکتوری ها در یک فایل سیستم موقت روی tmp/ ایجاد میشن
🔹 seccomp: محدود کردن syscallهای مهم
🔹 caps.drop all: حذف همه دسترسیهای ویژه (حتی با sudo هم امکان کارهایی مثل mount/unmount رو نداره)
بعد از ساخت و ذخیره پروفایل، اون رو همراه با برنامهایی که میخوایم اجرا کنیم به Firejail میدیم:
firejail --profile=~/.config/firejail/maple.profile maple &
توی مخازن اکثر توزیع ها هستش میتونید نصب و استفاده کنید.
🔘 @linux_exp | #Linux #Firejail
🔥7👍2
بعضی وقتا برای شروع کاری ذهن ما گرفتار تفکر «همهچیز یا هیچ» میشه: یا باید همه چیز کامل باشه، یا اصلاً شروع نکنیم. اما واقعیت متفاوته...
هیچچیز کامل نیست؛ اما تلاش تدریجی برای بهتر شدن و نزدیک شدن به کامل بودن، شیوه درستی از زندگی هستش.
🔗 Image source
🔘 @linux_exp | #NonTechnical
هیچچیز کامل نیست؛ اما تلاش تدریجی برای بهتر شدن و نزدیک شدن به کامل بودن، شیوه درستی از زندگی هستش.
🔗 Image source
🔘 @linux_exp | #NonTechnical
👍6
از این به بعد، هر چند وقت یک بار پستی با هشتگ #معرفی_نرمافزار منتشر میکنیم.
اینجا توی کامنتها میتونید نرمافزارها یا ابزارهایی رو معرفی کنید که به دردتون خوردن و فکر میکنید بقیه هم لازمه بشناسن رو بازنشر بدید 🌱
لینک برنامه رو (موبایل یا دسکتاپ) همراه با یه توضیح کوتاه این زیر کامنت کنید 👇
اگر هم پروژه ایی از خودتون هست که مفیده و دوست دارید به اشتراک بذارید، بازم میتونید این زیر کامنت کنید.
🔘 @linux_ex | #معرفی_نرمافزار
اینجا توی کامنتها میتونید نرمافزارها یا ابزارهایی رو معرفی کنید که به دردتون خوردن و فکر میکنید بقیه هم لازمه بشناسن رو بازنشر بدید 🌱
لینک برنامه رو (موبایل یا دسکتاپ) همراه با یه توضیح کوتاه این زیر کامنت کنید 👇
اگر هم پروژه ایی از خودتون هست که مفیده و دوست دارید به اشتراک بذارید، بازم میتونید این زیر کامنت کنید.
🔘 @linux_ex | #معرفی_نرمافزار
👍6💅1
LFS : Linux from Scratch
اسمی که حتی برای کاربران چندین ساله گنو/لینوکس ترسناکه اما میتونه یک تفریح خیلی اموزنده باشه.
پروژه LFS در واقع پروژه ایه که به شما نشون میده چجوری مرحله به مرحله سیستم عامل لینوکسی خودتون رو از سورس کد بسازید.
این پروژه این امکان رو به شما میده که با جزییات بسیار دقیق و گاها جالب اشنا بشید و اتفاقاتی که دست به دست هم میدن تا یک سیستم عامل رو بوجود بیارن رو درک کنید.
جامعه هدف LFS بیشتر توسعه دهندگان و کاربران حرفه ای هست که میخوان کنجکاوی خودشون رو ارضا کنن و مهارت هاشون رو به چالش بکشن. اما اینجا محدود نمیشه شما اگه دنبال یک سیستم عامل سفارشی از صفر میگردید جزو جامعه هدف LFS هستید
ریلیز اولیه LFS حدود سال ۱۹۹۹ بود که نشون بده چجوری میشه یک توزیع لینوکسی رو از سورس بیلد گرفت و اون رو ساخت. شاید براتون سوال باشه اگه از صفره ریلیز چی ؟! ریلیز کتاب :)
اگه شماهم دنبال به چالش کشیدن مهارت های خودتون هستید یا میخواید امتحان کنید میتونید کتاب LFS رو بصورت رایگان از [ سایت ] خودش دریافت کنید .
🔘 @linux_exp | #linux #lfs
اسمی که حتی برای کاربران چندین ساله گنو/لینوکس ترسناکه اما میتونه یک تفریح خیلی اموزنده باشه.
پروژه LFS در واقع پروژه ایه که به شما نشون میده چجوری مرحله به مرحله سیستم عامل لینوکسی خودتون رو از سورس کد بسازید.
این پروژه این امکان رو به شما میده که با جزییات بسیار دقیق و گاها جالب اشنا بشید و اتفاقاتی که دست به دست هم میدن تا یک سیستم عامل رو بوجود بیارن رو درک کنید.
جامعه هدف LFS بیشتر توسعه دهندگان و کاربران حرفه ای هست که میخوان کنجکاوی خودشون رو ارضا کنن و مهارت هاشون رو به چالش بکشن. اما اینجا محدود نمیشه شما اگه دنبال یک سیستم عامل سفارشی از صفر میگردید جزو جامعه هدف LFS هستید
ریلیز اولیه LFS حدود سال ۱۹۹۹ بود که نشون بده چجوری میشه یک توزیع لینوکسی رو از سورس بیلد گرفت و اون رو ساخت. شاید براتون سوال باشه اگه از صفره ریلیز چی ؟! ریلیز کتاب :)
اگه شماهم دنبال به چالش کشیدن مهارت های خودتون هستید یا میخواید امتحان کنید میتونید کتاب LFS رو بصورت رایگان از [ سایت ] خودش دریافت کنید .
git clone https://git.linuxfromscratch.org/lfs.git lfs-git
🔘 @linux_exp | #linux #lfs
⚡4❤2👍1👻1
Media is too big
VIEW IN TELEGRAM
💢 چطوری یک فلش مموری بوتیبل از ایزوی ویندوز توی لینوکس بسازیم ؟
توی این ویدیوضمن بررسی چالش های این کار، دو ابزار woeUSB و Ventoy رو باهم بررسی کردیم و در اخر Ventoy رو روی یک usb باهم نصب کردیم .
+ مطلب خیلی ساده ایه اما شروعی بود برای محتواهای تصویریمون 🤝 منتظر ویدیو های مفید تر باشید :)
🔘 @linux_exp | #usb #linux #video
توی این ویدیوضمن بررسی چالش های این کار، دو ابزار woeUSB و Ventoy رو باهم بررسی کردیم و در اخر Ventoy رو روی یک usb باهم نصب کردیم .
+ مطلب خیلی ساده ایه اما شروعی بود برای محتواهای تصویریمون 🤝 منتظر ویدیو های مفید تر باشید :)
🔘 @linux_exp | #usb #linux #video
🔥4❤2👍1🍾1🆒1
چجوری موقع لاگین شدن از SSH نوتیف دریافت کنیم؟
اگاهی به موقع از لاگینهای SSH میتونه سطح جدیدی از هوشیاری و امنیت رو برای سرورتون فراهم بکنه.
بهترین ابزار برای انجام این کار استفاده از PAM (Pluggable Authentication Module) هستش که میتونیم کار دلخواهمون رو (اینجا فرستادن نوتیف) موقع باز شدن یک نشست (session) توی SSH هندل کنیم
برای انجام این کار سراغ فایل
برید و بعد خطی که توش session حال حاضر تعریف شده اضافه کنید:
الان بخش اصلی کار تموم شده و شما باید نوتیفیکیشن دلخواهتون رو با استفاده از اسکریپتی که به PAM دادیم عملی کنید تا بعد هربار ایجاد نشست اسکریپت اجرا بشه و شما متوجه اتفاقات بشید.
بخش اخر خیلی به خلاقیت خودتون بستگی داره که چجوری هندلش کنید. مثلا ایمیل فرستاده بشه یا توی تلگرام و سایر جاها مثل دیکسورد نوتیفش رو داشته باشید و هزاران کار دیگه!
+ مرحله اخر بصورت استفاده از Gmail SMTP توی منبع ذکر شده میتونید مطالعه کنید :)
[ Source ]
🔘 @linux_exp | #SSH #PAM #linux
اگاهی به موقع از لاگینهای SSH میتونه سطح جدیدی از هوشیاری و امنیت رو برای سرورتون فراهم بکنه.
بهترین ابزار برای انجام این کار استفاده از PAM (Pluggable Authentication Module) هستش که میتونیم کار دلخواهمون رو (اینجا فرستادن نوتیف) موقع باز شدن یک نشست (session) توی SSH هندل کنیم
برای انجام این کار سراغ فایل
/etc/pam.d/sshdبرید و بعد خطی که توش session حال حاضر تعریف شده اضافه کنید:
session optional pam_exec.so /usr/local/bin/ssh-login-notify.shالان بخش اصلی کار تموم شده و شما باید نوتیفیکیشن دلخواهتون رو با استفاده از اسکریپتی که به PAM دادیم عملی کنید تا بعد هربار ایجاد نشست اسکریپت اجرا بشه و شما متوجه اتفاقات بشید.
بخش اخر خیلی به خلاقیت خودتون بستگی داره که چجوری هندلش کنید. مثلا ایمیل فرستاده بشه یا توی تلگرام و سایر جاها مثل دیکسورد نوتیفش رو داشته باشید و هزاران کار دیگه!
+ مرحله اخر بصورت استفاده از Gmail SMTP توی منبع ذکر شده میتونید مطالعه کنید :)
[ Source ]
🔘 @linux_exp | #SSH #PAM #linux
🔥9👌5❤2👍1
دیروز یکی از دوستان با وجود اینکه چند گیگ فضای خالی روی سرور داشت، ولی نمیتونست فایل ایجاد کنه که مشکل از پر شدن inode های سرور بود.
📌 inode چیه؟
میتونیم inode رو مثل کارت شناسایی فایلها توی لینوکس تصور کنیم. هر فایلی که روی سیستم هست یه کارت شناسایی (inode) داره که توش اطلاعات مهم مثل اندازه فایل، محل ذخیرهسازی فایل روی دیسک، مالک و تاریخها نوشته شده. یعنی حتی اگه فضای خالی روی هارد باشه، اگه همه کارتها پر شده باشن، سیستم نمیتونه فایل جدید بسازه چون دیگه کارت شناسایی جدید برای فایل وجود نداره.
♨️ مشکل پر شدن چطوری پیش میاد؟
معمولا وقتی تعداد خیلی زیادی فایل ریز و درشت روی سیستم ذخیره میکنیم (بیش از حد نرمال)، مخصوصا فایلهای کوچک، هر فایل یه inode میگیره. بعد از یه مدت، حتی اگه فضای هارد زیادی داشته باشیم، همه inode ها پر میشن و سیستم دیگه نمیتونه فایل جدید بسازه.
پس همیشه خوبه موقع مدیریت سرور حواسمون به inode usage هم باشه، نه فقط فضای خالی هارد. با دستورهایی مثل
🔘 @linux_exp | #linux #inode
📌 inode چیه؟
میتونیم inode رو مثل کارت شناسایی فایلها توی لینوکس تصور کنیم. هر فایلی که روی سیستم هست یه کارت شناسایی (inode) داره که توش اطلاعات مهم مثل اندازه فایل، محل ذخیرهسازی فایل روی دیسک، مالک و تاریخها نوشته شده. یعنی حتی اگه فضای خالی روی هارد باشه، اگه همه کارتها پر شده باشن، سیستم نمیتونه فایل جدید بسازه چون دیگه کارت شناسایی جدید برای فایل وجود نداره.
وقتی فایلسیستم روی هارد ساخته میشه، یه تعداد مشخص inode بهش اختصاص داده میشه. یعنی از همون اول تعداد مشخصی کارت شناسایی برای فایلها وجود داره و بعدا به راحتی قابل افزایش نیست.
♨️ مشکل پر شدن چطوری پیش میاد؟
معمولا وقتی تعداد خیلی زیادی فایل ریز و درشت روی سیستم ذخیره میکنیم (بیش از حد نرمال)، مخصوصا فایلهای کوچک، هر فایل یه inode میگیره. بعد از یه مدت، حتی اگه فضای هارد زیادی داشته باشیم، همه inode ها پر میشن و سیستم دیگه نمیتونه فایل جدید بسازه.
پس همیشه خوبه موقع مدیریت سرور حواسمون به inode usage هم باشه، نه فقط فضای خالی هارد. با دستورهایی مثل
df -ih میتونیم ببینیم چه مقدار inode باقی مونده و قبل از اینکه مشکل جدی بشه، فایلهای اضافی یا لاگهای قدیمی رو پاک کنیم.معمولا فایلهای لاگ قدیمی، فایلهای موقت یا کشها بیشترین inode رو مصرف میکنن. حتی دایرکتوریها هم inode دارند! با پاک کردن این فایلها میتونید فضای inode رو آزاد کنید و مشکل پر شدن رو حل کنید.
🔘 @linux_exp | #linux #inode
🔥5🥰3👍2👌1🫡1