نوشته‌های ترمینالی
2.62K subscribers
424 photos
12 videos
32 files
2.25K links
Download Telegram
"regression testing"? What's that? If it compiles, it is good, if it boots up it is perfect.

- linux torvalds
درباره arch
Arch Linux is an independently developed, x86-64 general purpose GNU/Linux distribution versatile enough to suit any role. Development focuses on simplicity, minimalism, and code elegance. Arch is installed as a minimal base system, configured by the user upon which their own ideal environment is assembled by installing only what is required or desired for their unique purposes. GUI configuration utilities are not officially provided, and most system configuration is performed from the shell by editing simple text files. Arch strives to stay bleeding edge, and typically offers the latest stable versions of most software.

Arch Linux uses its own Pacman package manager, which couples simple binary packages with an easy-to-use package build system. This allows users to easily manage and customize packages ranging from official Arch software to the user's own personal packages to packages from 3rd party sources. The repository system also allows users to easily build and maintain their own custom build scripts, packages, and repositories, encouraging community growth and contribution.

https://archlinux.org/about/
نوشته‌های ترمینالی
تفاوت lxc با docker https://medium.com/@harsh.manvar111/lxc-vs-docker-lxc-101-bd49db95933a
برای sandbox کردن برنامه‌ها، راه‌های متفاوت و سخت و آسونی وجود داره.
راه‌های virtualization مثل virtual box و vmware و parallels که کل یه OS رو شبیه‌سازی میکنه. قاعدتا سربار زیادی داره. دیر بالا میاد، مموری اضافه می‌گیره و ..

راه‌های دیگه، مبتنی بر همین سیستم‌عاملیه که داریم. یعنی با امکانات سیستم‌عامل، یه محیطی رو فراهم کنیم که یه پروسس با پروسس های دیگه کاری نداشته باشه.
قاعدتا سیستم عامل خوب همین کار رو همیشه انجام میده. مثلا فضای حافظه رو جدا میکنه که پروسس ها به حافظه‌ی هم کار نداشته باشن.
حالا می‌تونیم از امکانات بیشتری استفاده کنیم.
مثلا این امکاناتی که تو سیستم‌عامل‌های خوب (لینوکس!) وجود داره ایناست:
cgroups
chroot
namespace
seccomp
(البته احتمالا بازم هست ولی من بلد نیستم)

اولی که مخفف control groups هست، برای هر پروسس یه سری limit مثل مصرف حافظه، cpu و disk و network می‌ذاره. استفاده ازش (به صورت مستقیم) خیلی آسون نیست اما کارش خیلی درسته.
دومی که به معنی change rootئه، میاد و مسیر روت (/) یه پروسسی رو می‌ذاره تو یه پوشه‌ای، در نتیجه اون پروسس اصلا نمی‌تونه بیرون از اون پوشه رو دست بزنه چون هر مسیری که بده تو همون پوشه‌هه میفته.
اگرچه مکانیسم امنیتی نیست و کاربردهای خاص خودش رو داره اما عملا میشه دسترسی به فایل‌های فایل‌سیستم رو محدود کرد.

سومی یا همون namespace، در واقع اون چیزی که توی cpp داشتیم نیست! کارش راحتی برنامه‌نویس نیست بلکه گروه‌های پروسسی رو از هم جدا میکنه و اساس کار کانتینرهاست.

چهارمی (seccomp) که مخفف secure computing mode، باز هم امکان کرنل لینوکس برای رفتن به یه حالت امنه. تو این حالت امن برنامه سیستم‌کال های خیلی خاصی مثل exit میتونه بزنه یا نهایتا خوندن و نوشتن همون فایل‌هایی که قبل secure شدن باز داشته.

حالا چطوری با این امکانات، امنیت ایجاد کنیم؟ یه راهش contianerها هستند.
کانتینرها مثل openvz و lxd (مخفف linux container) میان و یه لینوکس داخل لینوکس خودتون میدن که عملا هسته لینوکس شما اون رو کنترل می‌کنه، منتهی با فضای پروسس و منابع و حتی فایل‌های جدا.
روی این lxd یه سری اومدن docker رو ساختن که از مکانیسم های lxd استفاده می‌کنه اما محبوب و کاربرپسند شده به دلایلی.
حالا گفته میشه که هدف کانتینرها امنیت نیست. یعنی اینکه اگرچه یه فضای جدا برا خودشون دارن اما در عمل نمیشه ۱۰۰ درصد مطمئن بود پروسسی که داخل کانتینره به بیرون کاری نکنه. حالا اگه کانتینر بیرون روت نباشه (unprivileged container) امنیت یکم بیشتر میشه اما باز ۱۰۰درصدی نیست.

اما جدا از کانتینر که کلا یه فضای جدید باز میکنه و بازم سربار داره، ابزارهای دیگه‌ای هستن مثل firejail و isolate که میاد مثل یه wrapper برای ابزارهایی که گفتم عمل میکنه. مثلا جلوی دسترسی به شبکه یا یه سری فایل حساس رو می‌بنده (یا فقط read only میکنه)

کاربرد کانتینرها مثل داکر رو که همه آشنا هستیم، برای درست کردن یه سیستم جدا با نصب بودن برنامه‌های خاص و معماری خاصه که توسعه نرم‌افزار رو راحت کنه.
مدل دوم مخصوصا isolate توی جاج های انلاین استفاده میشه تا سرورشون رو در مقابل برنامه‌های احتمالا مخرب محافظت کنن.
اما firejail گویا کاربرد عمومی داره، برای هر نرم افزار یه پروفایل تعریف کرده که به چه چیزهایی اجازه دسترسی داره و در نتیجه نرم‌افزارها کار عجیب دیگه‌ای نکنن و امنیت کلی سیستم بره بالا.
تمپلیت مطالب کانال:
چرا {موضوع مورد نظر}$ بد است
Forwarded from Programming Resources via @like
guided tour that walks through the fundamentals of Git, inspired by the premise that to know a thing is to do it.
آموزش‌های قدم به قدم گیت از ابتدایی‌ترین چیزها تا تقریبا پیشرفته‌ترین مواردی که توی گیت کاربرد داره رو میتونید توی این سایت به صورت جامع یاد بگیرید.

#git #tutorial #tutorials #how #howto
@pyhony

githowto.com
اگر سواد ندارید، لااقل سایت طراحی نکنید.
یه دوستم میگفت ما برای دانلود کردن، میریم کلی IDM نصب میکنیم و کرک میکنیم، شما فقط میزنین wget؟

باید بهش بگم خبر نداری اسکرین ریکورد و convert و تقریبا هرکار گرافیکی و ویدیویی رو هم با ffmpeg تو ترمینال میکنیم.
https://www.ffmpeg.org/
Forwarded from Programming Resources via @like
Test your shell knowledge with this awesome challenge.
مهارت‌های shell خود را با این بازی آنلاین محک بزنید.

#shell #bash #command #line #challenge #practice #terminal #linux #game #gamification #fun
@pythony

cmdchallenge.com
متجاوزان معرفتی

به افرادی که در زمینه‌ای خارج از تخصص اصلیشون اظهار نظر غلط می‌کنند اصطلاحا متجاوزان معرفتی می‌گن؛ Epistemic trespassers

این نوشته در مورد این افراد و مسائل مربوط به این مدل تجاوزه!
🔗 sitpor.org/2021/09/epistemic-trespassing

~~~~~~~~~
@sitpor | sitpor.org
instagram.com/sitpor_media
#سیتپـــــور به خاطر روایتگری در علم
~~~~~~~~~
ابزار tldr هم جالبه.
برای دستورات مختلف آموزش داره، اموزشش سبک man pageئه ولی خیلی مختصر مفید و البته با مثال. برای وقت هایی که وقت man خوندن نداریم یا خیلی طولانیه معمولا جواب میده.
البته خودش دیتایی نداره و انلاین کوئری میزنه ولی پیاده سازی های مختلف با زبان های مختلف داره.
https://tldr.sh/
👍1